跳转到主要内容
文件 API 让你向 Session 提供文件上下文——代码仓库、配置文件、参考文档等。Agent 可以读取这些文件来理解任务背景。

核心流程

1

上传文件

POST /files — 上传文件二进制内容并指定 purpose
2

挂载到 Session

POST /sessions/{session_id}/resources — 把已上传文件挂载到 Session。
3

Agent 使用

Session 运行期间 Agent 读取文件内容,完成任务。

上传文件

POST https://api.qoder.com/api/v1/cloud/files
Content-Type: multipart/form-data

参数

字段类型必填说明
filebinary文件内容
purposestring文件用途(见下表)
filenamestring自定义文件名

purpose 字段说明

含义谁创建可下载
user_upload用户上传的输入文件用户
tool_output工具执行产出的文件Agent/工具
skill_outputSkill 执行产出的文件Agent/Skill
session_resourceSession 级别的资源文件用户/系统
agent_outputAgent 最终输出文件Agent
tool_outputskill_output 可通过 /content 端点下载。其他类型仅供 Agent 内部使用。
curl -X POST https://api.qoder.com/api/v1/cloud/files \
  -H "Authorization: Bearer $QODER_PAT" \
  -F "file=@./src/main.py" \
  -F "purpose=user_upload"
响应:
{
  "file_id": "file_019e6a18dc0978e9a2104c9b269748ac",
  "filename": "main.py",
  "purpose": "user_upload",
  "size_bytes": 4096,
  "metadata": {},
  "mime_type": "text/plain",
  "status": "ready",
  "created_at": "2026-05-01T10:00:00Z",
  "updated_at": "2026-05-01T10:00:00Z"
}

挂载到 Session

上传后,通过 Resources API 将文件挂载到指定 Session:
POST https://api.qoder.com/api/v1/cloud/sessions/{session_id}/resources
请求体(使用 resources 数组包装,单次可批量挂载):
{
  "resources": [
    {
      "type": "file",
      "file_id": "file_abc123"
    }
  ]
}
curl -X POST https://api.qoder.com/api/v1/cloud/sessions/sess_abc123/resources \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "resources": [
      {"type": "file", "file_id": "file_abc123"}
    ]
  }'

管理文件

查看文件元信息

curl https://api.qoder.com/api/v1/cloud/files/file_abc123 \
  -H "Authorization: Bearer $QODER_PAT"

列出文件

curl "https://api.qoder.com/api/v1/cloud/files?purpose=user_upload" \
  -H "Authorization: Bearer $QODER_PAT"
支持按 purpose 过滤。

下载文件

tool_outputskill_output 类型的文件可下载:
curl https://api.qoder.com/api/v1/cloud/files/file_abc123/content \
  -H "Authorization: Bearer $QODER_PAT" \
  -o output.txt
其他类型请求 /content 端点将返回 403 Forbidden

完整工作流示例

# 1. 上传源代码文件
FILE_ID=$(curl -s -X POST https://api.qoder.com/api/v1/cloud/files \
  -H "Authorization: Bearer $QODER_PAT" \
  -F "file=@./app.py" \
  -F "purpose=user_upload" | jq -r '.file_id')

echo "上传完成: $FILE_ID"

# 2. 创建 Session
SESSION_ID=$(curl -s -X POST https://api.qoder.com/api/v1/cloud/sessions \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{"agent": "agent_abc123"}' | jq -r '.id')

# 3. 挂载文件到 Session
curl -X POST "https://api.qoder.com/api/v1/cloud/sessions/$SESSION_ID/resources" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d "{\"resources\": [{\"type\": \"file\", \"file_id\": \"$FILE_ID\"}]}"

# 4. 发送任务(Agent 可引用已挂载的文件)
curl -X POST "https://api.qoder.com/api/v1/cloud/sessions/$SESSION_ID/events" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "events": [
      {"type": "user.message", "content": [{"type": "text", "text": "审查 app.py 并修复其中的 bug"}]}
    ]
  }'

常见问题

Q:上传的文件存储多久? A:文件与所属资源(Agent/Session)生命周期一致。Session 删除后相关文件会被清理。 Q:能否直接在创建 Session 时附带文件? A:可以。创建 Session 时在 resources 字段中传入文件资源即可。详见 Sessions — 创建时附带资源 Q:为什么 user_upload 类型不可下载? A:出于安全考虑,用户上传的原始文件仅供 Agent 内部使用。如需导出结果,Agent 会以 tool_outputskill_output 类型产出新文件。 Q:支持哪些文件格式? A:无格式限制,任意二进制文件均可上传。Agent 对文本类文件(代码、配置、文档)的理解效果最佳。

下一步

启动 Session

创建 Session 时直接附加文件。

持久化记忆

在 Session 之间持久化 Agent 知识。

Files API

完整的文件 API 接口。