Was this page helpful?
Sie können Dateien für Ihren Agent bereitstellen, indem Sie sie über die Files API hochladen und in den Container der Sitzung mounten.
Alle Managed Agents API-Anfragen erfordern den managed-agents-2026-04-01 Beta-Header. Das SDK setzt den Beta-Header automatisch.
Laden Sie zunächst eine Datei mit der Files API hoch:
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}"Mounten Sie hochgeladene Dateien in den Container, indem Sie sie beim Erstellen einer Sitzung zum resources-Array hinzufügen:
Der mount_path ist optional, aber stellen Sie sicher, dass die hochgeladene Datei einen aussagekräftigen Namen hat, damit der Agent weiß, wonach er sucht.
Eine neue file_id wird erstellt, die die Instanz der Datei in der Sitzung referenziert. Diese Kopien werden nicht auf Ihre Speicherlimits angerechnet.
Mounten Sie mehrere Dateien, indem Sie Einträge zum resources-Array hinzufügen:
Pro Sitzung werden maximal 100 Dateien unterstützt.
Sie können Dateien einer Sitzung nach der Erstellung mit der Session-Ressourcen-API hinzufügen oder entfernen. Jede Ressource hat eine id, die beim Hinzufügen (oder Auflisten) zurückgegeben wird und die Sie für Löschungen verwenden.
Listen Sie alle Ressourcen in einer Sitzung mit resources.list auf. Um eine Datei zu entfernen, rufen Sie resources.delete mit der Ressourcen-ID auf:
Verwenden Sie die Files API, um Dateien, die auf eine Sitzung beschränkt sind, aufzulisten und herunterzuladen.
Der Agent kann mit jedem Dateityp arbeiten, einschließlich:
.py, .js, .ts, .go, .rs, usw.).csv, .json, .xml, .yaml).txt, .md).zip, .tar.gz) - der Agent kann diese mit Bash extrahierenDateien, die im Container gemountet sind, sind schreibgeschützte Kopien. Der Agent kann sie lesen, aber nicht die ursprüngliche hochgeladene Datei ändern. Um mit geänderten Versionen zu arbeiten, schreibt der Agent in neue Pfade innerhalb des Containers.
/)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