Was this page helpful?
Puedes proporcionar archivos a tu agente subiéndolos a través de la Files API y montándolos en el contenedor de la sesión.
Todas las solicitudes a la API de Managed Agents requieren el encabezado beta managed-agents-2026-04-01. El SDK establece el encabezado beta automáticamente.
Primero, sube un archivo usando la Files API:
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}"Monta los archivos subidos en el contenedor agregándolos al arreglo resources al crear una sesión:
El mount_path es opcional, pero asegúrate de que el archivo subido tenga un nombre descriptivo para que el agente sepa qué está buscando.
Se creará un nuevo file_id que hace referencia a la instancia del archivo en la sesión. Estas copias no cuentan contra tus límites de almacenamiento.
Monta múltiples archivos agregando entradas al arreglo resources:
Se admite un máximo de 100 archivos por sesión.
Puedes agregar o eliminar archivos de una sesión después de su creación usando la API de recursos de sesión. Cada recurso tiene un id que se devuelve cuando se agrega (o se lista), el cual se usa para las eliminaciones.
Lista todos los recursos de una sesión con resources.list. Para eliminar un archivo, llama a resources.delete con el ID del recurso:
Usa la Files API para listar archivos con alcance a una sesión y descargarlos.
El agente puede trabajar con cualquier tipo de archivo, incluyendo:
.py, .js, .ts, .go, .rs, etc.).csv, .json, .xml, .yaml).txt, .md).zip, .tar.gz) - el agente puede extraerlos usando bashLos archivos montados en el contenedor son copias de solo lectura. El agente puede leerlos pero no puede modificar el archivo original subido. Para trabajar con versiones modificadas, el agente escribe en nuevas rutas dentro del contenedor.
/)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# Listar archivos asociados con una sesión
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"
# Descargar un archivo
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