Puoi fornire file al tuo agente caricandoli tramite la Files API e montandoli nel container della sessione.
Tutte le richieste all'API Managed Agents richiedono l'intestazione beta managed-agents-2026-04-01. L'SDK imposta automaticamente l'intestazione beta.
Prima, carica un file utilizzando 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 i file caricati nel container aggiungendoli all'array resources durante la creazione di una sessione:
Il mount_path è opzionale, ma assicurati che il file caricato abbia un nome descrittivo in modo che l'agente sappia cosa sta cercando.
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}")Verrà creato un nuovo file_id che fa riferimento all'istanza del file nella sessione. Queste copie non vengono conteggiate nei tuoi limiti di archiviazione.
Monta più file aggiungendo voci all'array 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" }
]È supportato un massimo di 100 file per sessione.
Puoi aggiungere o rimuovere file da una sessione dopo la sua creazione utilizzando l'API delle risorse di sessione. Ogni risorsa ha un id restituito quando viene aggiunta (o elencata), che utilizzi per le eliminazioni.
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..."Elenca tutte le risorse di una sessione con resources.list. Per rimuovere un file, chiama resources.delete con l'ID della risorsa:
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/nullUtilizza la Files API per elencare i file associati a una sessione e scaricarli.
# Elenca i file associati a una sessione
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"
# Scarica un 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.txtL'agente può lavorare con qualsiasi tipo di file, inclusi:
.py, .js, .ts, .go, .rs, ecc.).csv, .json, .xml, .yaml).txt, .md).zip, .tar.gz) - l'agente può estrarli usando bashI file montati nel container sono copie di sola lettura. L'agente può leggerli ma non può modificare il file caricato originale. Per lavorare con versioni modificate, l'agente scrive su nuovi percorsi all'interno del container.
/)Was this page helpful?