前置条件
- 一个 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_PAT="your-token"(而非export) - 调用真实 curl:使用
curl.exe(PowerShell 的curl是Invoke-WebRequest的别名) jq需额外安装:winget install jqlang.jq
第 1 步:获取 PAT
- 登录 Qoder 控制台
- 进入「设置 → 个人访问令牌」
- 点击「创建令牌」,设置名称和有效期
- 复制令牌并设置环境变量:
令牌只在创建时显示一次,请立即保存。建议写入
~/.bashrc 或 ~/.zshrc。第 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_PAT 是否已正确设置,令牌是否过期。重新创建令牌并更新环境变量。
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 步中的提示手动创建一个。
下一步
定义 Agent
了解 Agent 配置的全部字段。
云端环境配置
自定义运行环境。
启动 Session
深入会话管理。
Agent Skills
为 Agent 附加领域专业知识,提升特定任务表现。