Claude Platform Docs
Managed Agents管理智能体上下文

添加文件

上传文件并将其挂载到您的沙箱中,以便读取和处理。

您可以通过 Files API 上传文件并将其挂载到会话的沙箱(sandbox)中,从而为您的智能体提供文件。

上传文件

首先,使用 Files API 上传文件:

file = client.files.upload(file=Path("data.csv"))
print(f"File ID: {file.id}")

在会话中挂载文件

在创建会话时,将已上传的文件添加到 resources 数组中,即可将其挂载到沙箱中:

session = client.beta.sessions.create(
    agent=agent.id,
    environment_id=environment.id,
    resources=[
        {
            "type": "file",
            "file_id": file.id,
            "mount_path": "/data.csv",
        },
    ],
)

使用上述 mount_path,智能体将在 /mnt/session/uploads/data.csv 读取该文件(请参阅文件路径)。

系统会创建一个新的 file_id,用于引用该文件在会话中的实例。这些副本不计入您的存储限制。

多个文件

通过向 resources 数组添加条目来挂载多个文件:

resources = [
    {"type": "file", "file_id": "file_abc123", "mount_path": "/data.csv"},
    {"type": "file", "file_id": "file_def456", "mount_path": "/config.json"},
    {"type": "file", "file_id": "file_ghi789", "mount_path": "/src/main.py"},
]

每个会话最多支持 500 个文件。

管理运行中会话的文件

您可以在会话创建后使用会话资源 API 向会话添加或移除文件。每个资源在添加(或列出)时都会返回一个 id,您可以使用该 id 进行删除操作。

resource = client.beta.sessions.resources.add(
    session.id,
    type="file",
    file_id=file.id,
)
print(resource.id)  # "sesrsc_01ABC..."

使用 resources.list 列出会话中的所有资源。要移除文件,请使用资源 ID 调用 resources.delete:

listed = client.beta.sessions.resources.list(session.id)
for entry in listed.data:
    print(entry.id, entry.type)

client.beta.sessions.resources.delete(resource.id, session_id=session.id)

列出和下载会话文件

使用 Files API 列出限定于某个会话范围内的文件并下载它们。智能体写入 /mnt/session/outputs/ 的文件会在智能体完成写入后不久出现在列表中,有时会在会话进入空闲状态几秒钟之后。如果您预期的输出文件缺失,请稍等片刻后再次列出;一旦它出现在列表中,即表示其上传已完成。

按 scope_id 进行筛选需要 managed-agents-2026-04-01 beta 请求头,因此列表示例使用 beta 文件命名空间并显式传递该请求头。

# 列出与会话关联的文件
files = client.beta.files.list(
    scope_id="sesn_abc123",
    betas=["managed-agents-2026-04-01"],
)
for file in files:
    print(file.id, file.filename)

# 下载文件
content = client.files.download(files.data[0].id)
content.write_to_file("output.txt")

支持的文件类型

智能体可以处理任何文件类型,包括:

  • 源代码(.py、.js、.ts、.go、.rs 等)
  • 数据文件(.csv、.json、.xml、.yaml)
  • 文档(.txt、.md)
  • 归档文件(.zip、.tar.gz)- 智能体可以使用 bash 解压这些文件
  • 二进制文件 - 智能体可以使用适当的工具处理这些文件

文件路径

  • 您指定的路径以会话的 uploads 目录为根:mount_path 为 /data.csv 时,文件将被放置在沙箱中的 /mnt/session/uploads/data.csv
  • 如果您省略 mount_path,文件将被放置在 /mnt/session/uploads/<file_id>
  • 父目录会自动创建
  • 路径应为绝对路径(以 / 开头)
  • 智能体写入 /mnt/session/outputs/ 的文件可通过 Files API 获取,且限定于该会话范围内;请参阅列出和下载会话文件

Was this page helpful?