Was this page helpful?
Você pode fornecer arquivos ao seu agente carregando-os através da API de Arquivos e montando-os no contêiner da sessão.
Todas as solicitações da API Managed Agents exigem o cabeçalho beta managed-agents-2026-04-01. O SDK define o cabeçalho beta automaticamente.
Primeiro, carregue um arquivo usando a API de Arquivos:
file=$(curl --fail-with-body -sS "${auth[@]}" \
"${base_url}/files" \
-F [email protected])
file_id=$(jq -er '.id' <<<"${file}")
printf 'File ID: %s\n' "${file_id}"Monte arquivos carregados no contêiner adicionando-os ao array resources ao criar uma sessão:
O mount_path é opcional, mas certifique-se de que o arquivo carregado tenha um nome descritivo para que o agente saiba o que está procurando.
Um novo file_id será criado que referencia a instância do arquivo na sessão. Essas cópias não contam contra seus limites de armazenamento.
Monte múltiplos arquivos adicionando entradas ao array resources:
Um máximo de 100 arquivos é suportado por sessão.
Você pode adicionar ou remover arquivos de uma sessão após a criação usando a API de recursos da sessão. Cada recurso tem um id retornado quando é adicionado (ou listado), que você usa para exclusões.
Liste todos os recursos em uma sessão com resources.list. Para remover um arquivo, chame resources.delete com o ID do recurso:
Use a API de Arquivos para listar arquivos com escopo de uma sessão e baixá-los.
O agente pode trabalhar com qualquer tipo de arquivo, incluindo:
.py, .js, .ts, .go, .rs, etc.).csv, .json, .xml, .yaml).txt, .md).zip, .tar.gz) - o agente pode extrair esses usando bashArquivos montados no contêiner são cópias somente leitura. O agente pode lê-los, mas não pode modificar o arquivo original carregado. Para trabalhar com versões modificadas, o agente escreve em novos caminhos dentro do contêiner.
/)session=$(
jq -n \
--arg agent_id "${agent_id}" \
--arg environment_id "${environment_id}" \
--arg file_id "${file_id}" \
'{
agent: $agent_id,
environment_id: $environment_id,
resources: [
{
type: "file",
file_id: $file_id,
mount_path: "/workspace/data.csv"
}
]
}' | curl --fail-with-body -sS "${auth[@]}" "${base_url}/sessions" --json @-
)
session_id=$(jq -er '.id' <<<"${session}")"resources": [
{ "type": "file", "file_id": "file_abc123", "mount_path": "/workspace/data.csv" },
{ "type": "file", "file_id": "file_def456", "mount_path": "/workspace/config.json" },
{ "type": "file", "file_id": "file_ghi789", "mount_path": "/workspace/src/main.py" }
]resource=$(
jq -n --arg file_id "${file_id}" '{type: "file", file_id: $file_id}' \
| curl --fail-with-body -sS "${auth[@]}" \
"${base_url}/sessions/${session_id}/resources" --json @-
)
resource_id=$(jq -er '.id' <<<"${resource}")
printf '%s\n' "${resource_id}" # "sesrsc_01ABC..."curl --fail-with-body -sS "${auth[@]}" \
"${base_url}/sessions/${session_id}/resources" \
| jq -r '.data[] | "\(.id) \(.type)"'
curl --fail-with-body -sS "${auth[@]}" -X DELETE \
"${base_url}/sessions/${session_id}/resources/${resource_id}" >/dev/null# List files associated with a session
curl -fsSL "https://api.anthropic.com/v1/files?scope_id=sess_abc123" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14"
# Download a file
curl -fsSL "https://api.anthropic.com/v1/files/$FILE_ID/content" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-o output.txt