5 步跑通你的第一个 Qoder Cloud Agent。
5 步跑通你的第一个 Qoder Cloud Agent:获取令牌、选择环境、创建 Agent、创建 Session、收发消息。全程只需 curl,无需安装任何 SDK。
根据调用身份选择 PAT 或 SAT。后续步骤统一使用
查询可用环境列表,获取环境 ID:
响应示例:
定义一个具备 shell 工具的通用 Agent:
响应示例:
创建 Session 需要两个必填参数:
响应示例:
向 Session 发送用户消息,然后通过 SSE 流实时接收 Agent 响应:
事件流输出示例:
将以上步骤整合为一个可直接运行的脚本:
Q: 提示 401 Unauthorized 怎么办?
A: 检查
前置条件
- 一个 Qoder 账号
- 终端环境(macOS / Linux / WSL)
curl和jq(可选,用于格式化 JSON)
Windows 用户
Windows 用户
本文档中的命令基于 bash 语法。Windows 用户推荐使用以下方式之一:
- Git Bash(推荐):安装 Git for Windows 自带
- WSL:通过
wsl --install安装 Windows Subsystem for Linux
- 环境变量设置:
$env:QODER_ACCESS_TOKEN="your-token"(而非export) - 调用真实 curl:使用
curl.exe(PowerShell 的curl是Invoke-WebRequest的别名) jq需额外安装:winget install jqlang.jq
第 1 步:获取访问令牌
根据调用身份选择 PAT 或 SAT。后续步骤统一使用 QODER_ACCESS_TOKEN 环境变量。
先设置服务地址。置换 SAT 和调用业务 API 必须使用同一区域的地址:
方式一:PAT(个人用户)
- 登录 Qoder 控制台。
- 进入设置 → 个人访问令牌。
- 点击创建令牌,设置名称和有效期。
- 复制令牌并设置环境变量:
PAT 只在创建时显示一次,请立即妥善保存。
方式二:SAT(Service Account Token)
- 以组织管理员身份登录 Qoder 控制台。
- 在组织管理中创建或选择服务账号。
- 在服务账号详情页创建 API Key。创建时无需选择 scope;所需 scope 在换取 SAT 时指定。
- 复制 SA Key,然后换取 SAT:
SA Key 仅用于换取 SAT,请勿直接调用 Cloud Agents 业务 API。SAT 最长有效 12 小时。调用 Forward API 时,请按认证中的独立令牌流程操作。
第 2 步:选择环境
查询可用环境列表,获取环境 ID:
第 3 步:创建 Agent
定义一个具备 shell 工具的通用 Agent:
第 4 步:创建 Session
创建 Session 需要两个必填参数:agent(Agent ID 或对象)和 environment_id(Environment ID)。
将 Agent 绑定到环境,创建运行实例:
Session 创建后处于
idle 状态,需要在下一步发送消息后 Agent 才会开始执行。第 5 步:发消息 + 收事件
向 Session 发送用户消息,然后通过 SSE 流实时接收 Agent 响应:
- 除
heartbeat外,每条事件都有id:行,JSON 负载包含id、type和processed_at字段。 heartbeat事件约每 15 秒发送一次,用于保持连接活跃。agent.message的content字段使用[{"type":"text","text":"..."}]数组格式。session.status_running/session.status_idle除id、type、processed_at(idle 还有stop_reason)外不携带其他字段。agent.thinking表示模型正在推理,不包含content或text字段。
端到端脚本
将以上步骤整合为一个可直接运行的脚本:
常见问题
Q: 提示 401 Unauthorized 怎么办?
A: 检查 $QODER_ACCESS_TOKEN 是否已正确设置且未过期。PAT 用户请创建新令牌;服务账号用户请使用 SA Key 重新换取 SAT。
Q: 创建 Agent 返回 400 Bad Request?
A: 检查请求体 JSON 格式是否正确,model 字段是否为有效值(如 "ultimate"),tools 是否为数组。
Q: Session 一直处于 idle 状态,收不到事件?
A: Session 创建后默认为 idle,必须向其发送 user.message 事件才会触发 Agent 执行。请确认第 5 步已正确执行。
Q: SSE 流连接中断了怎么办?
A: Stream endpoint 支持 Last-Event-ID header 进行断线重连。重连时在请求头中传入上次收到的事件 ID,流将从该事件之后开始重放。如需查询历史事件,请使用 GET /api/v1/cloud/sessions/{id}/events?order=desc。
Q: GET /api/v1/cloud/environments 返回空数组?
A: 新账号可能没有预置环境,请参照第 2 步中的提示手动创建一个。