跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.qoder.com/llms.txt

Use this file to discover all available pages before exploring further.

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

核心流程

1

上传文件

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

挂载到 Session

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

Agent 使用

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

上传文件

POST https://openapi.qoder.sh/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 上传示例

curl -X POST https://openapi.qoder.sh/api/v1/cloud/files \
  -H "Authorization: Bearer $QODER_PAT" \
  -F "file=@./src/main.py" \
  -F "purpose=user_upload"
响应:
{
  "file_id": "file_abc123",
  "filename": "main.py",
  "purpose": "user_upload",
  "size_bytes": 4096,
  "created_at": "2026-05-01T10:00:00Z"
}
上传多个文件:
# 逐个上传
curl -X POST https://openapi.qoder.sh/api/v1/cloud/files \
  -H "Authorization: Bearer $QODER_PAT" \
  -F "file=@./config.yaml" \
  -F "purpose=user_upload"

curl -X POST https://openapi.qoder.sh/api/v1/cloud/files \
  -H "Authorization: Bearer $QODER_PAT" \
  -F "file=@./requirements.txt" \
  -F "purpose=user_upload"

挂载到 Session

上传后,通过 Resources API 将文件挂载到指定 Session:
POST https://openapi.qoder.sh/api/v1/cloud/sessions/{session_id}/resources
请求体(使用 resources 数组包装,单次可批量挂载):
{
  "resources": [
    {
      "type": "file",
      "file_id": "file_abc123"
    }
  ]
}

curl 挂载示例

curl -X POST https://openapi.qoder.sh/api/v1/cloud/sessions/ses_abc123/resources \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "resources": [
      {"type": "file", "file_id": "file_abc123"}
    ]
  }'
批量挂载多个文件(一次请求传入多个资源):
curl -X POST https://openapi.qoder.sh/api/v1/cloud/sessions/ses_abc123/resources \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "resources": [
      {"type": "file", "file_id": "file_abc123"},
      {"type": "file", "file_id": "file_def456"},
      {"type": "file", "file_id": "file_ghi789"}
    ]
  }'

下载文件

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

查看文件信息

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

列出文件

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

文件大小限制

限制项
单文件最大50 MB
单 Session 挂载文件总量500 MB
单次上传请求超时120 秒

完整工作流示例

# 1. 上传源代码文件
FILE_ID=$(curl -s -X POST https://openapi.qoder.sh/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://openapi.qoder.sh/api/v1/cloud/sessions \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": "agt_abc123"}' | jq -r '.id')

# 3. 挂载文件到 Session
curl -X POST "https://openapi.qoder.sh/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://openapi.qoder.sh/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:当前需分步操作:先上传、再挂载。后续版本可能支持一步完成。 Q:为什么 user_upload 类型不可下载? A:出于安全考虑,用户上传的原始文件仅供 Agent 内部使用。如需导出结果,Agent 会以 tool_outputskill_output 类型产出新文件。 Q:支持哪些文件格式? A:无格式限制,任意二进制文件均可上传。Agent 对文本类文件(代码、配置、文档)的理解效果最佳。