Was this page helpful?
Вы можете предоставлять файлы своему агенту, загружая их через Files API и монтируя в контейнер сессии.
Все запросы к Managed Agents API требуют бета-заголовка managed-agents-2026-04-01. SDK устанавливает бета-заголовок автоматически.
Сначала загрузите файл с помощью 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}"Смонтируйте загруженные файлы в контейнер, добавив их в массив resources при создании сессии:
mount_path является необязательным параметром, но убедитесь, что загруженный файл имеет описательное имя, чтобы агент знал, что именно он ищет.
Будет создан новый file_id, который ссылается на экземпляр файла в сессии. Эти копии не учитываются в ваших лимитах хранилища.
Смонтируйте несколько файлов, добавив записи в массив resources:
Максимальное количество файлов на сессию — 100.
Вы можете добавлять или удалять файлы из сессии после её создания с помощью API ресурсов сессии. Каждый ресурс имеет id, возвращаемый при его добавлении (или перечислении), который используется для удаления.
Перечислите все ресурсы сессии с помощью resources.list. Чтобы удалить файл, вызовите resources.delete с идентификатором ресурса:
Используйте Files API для перечисления файлов, привязанных к сессии, и их скачивания.
Агент может работать с любым типом файлов, включая:
.py, .js, .ts, .go, .rs и др.).csv, .json, .xml, .yaml).txt, .md).zip, .tar.gz) — агент может распаковывать их с помощью bashФайлы, смонтированные в контейнере, являются копиями только для чтения. Агент может читать их, но не может изменять исходный загруженный файл. Для работы с изменёнными версиями агент записывает данные по новым путям внутри контейнера.
/)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# Перечислить файлы, связанные с сессией
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"
# Скачать файл
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