Vous pouvez fournir des fichiers à votre agent en les téléversant via l'API Files et en les montant dans le conteneur de la session.
Toutes les requêtes de l'API Managed Agents nécessitent l'en-tête bêta managed-agents-2026-04-01. Le SDK définit automatiquement l'en-tête bêta.
Tout d'abord, téléversez un fichier en utilisant l'API Files :
Was this page helpful?
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}"Montez les fichiers téléversés dans le conteneur en les ajoutant au tableau resources lors de la création d'une session :
Le mount_path est optionnel, mais assurez-vous que le fichier téléversé a un nom descriptif afin que l'agent sache ce qu'il recherche.
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}")Un nouveau file_id sera créé qui référence l'instance du fichier dans la session. Ces copies ne comptent pas dans vos limites de stockage.
Montez plusieurs fichiers en ajoutant des entrées au tableau resources :
"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" }
]Un maximum de 100 fichiers est pris en charge par session.
Vous pouvez ajouter ou supprimer des fichiers d'une session après sa création en utilisant l'API de ressources de session. Chaque ressource possède un id retourné lors de son ajout (ou de son listage), que vous utilisez pour les suppressions.
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..."Listez toutes les ressources d'une session avec resources.list. Pour supprimer un fichier, appelez resources.delete avec l'ID de la ressource :
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/nullUtilisez l'API Files pour lister les fichiers associés à une session et les télécharger.
# Lister les fichiers associés à une 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"
# Télécharger un fichier
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.txtL'agent peut travailler avec n'importe quel type de fichier, notamment :
.py, .js, .ts, .go, .rs, etc.).csv, .json, .xml, .yaml).txt, .md).zip, .tar.gz) - l'agent peut les extraire en utilisant bashLes fichiers montés dans le conteneur sont des copies en lecture seule. L'agent peut les lire mais ne peut pas modifier le fichier téléversé original. Pour travailler avec des versions modifiées, l'agent écrit dans de nouveaux chemins au sein du conteneur.
/)