快速开始
如果你是第一次为代理做接入,请先安装 Youka CLI,然后安装 Youka 卡拉 OK 技能:给你的代理下指令
安装好 CLI 和 skill 之后,你可以这样给代理一个直接任务:操作规则
始终使用 --json
在 CLI 中,始终传
--json。在 API 中,始终设置 Accept: application/json。不要解析面向人类的输出。始终发送幂等键
每次写入都应携带稳定的幂等键,这样在超时后重试会返回原始结果,而不是重复执行工作。
重新读取持久化状态
不要信任过时的变更响应。在终态任务之后,重新读取 project 或 export 以获取最终状态。
使用退避轮询
从 2–3 秒的间隔开始。对于长任务使用指数退避。尊重 429 响应。
输出约定
每个以--json 模式运行的 CLI 命令都会向 stdout 写入且只写入一个信封(envelope)。
成功:
端到端工作流
规范的代理工作流是:创建 project、等待、导出、下载结果。下面给出 CLI 与 SDK 的完整模式实现。轮询建议
在 SDK 中,大多数写操作都会返回 operation handles。优先使用client.projects.wait(...) 和 client.exports.wait(...),只有在你明确需要更底层的 task 访问时才使用 client.tasks.*。
在 CLI 中,
--wait 会为你处理轮询。在 SDK 中,wait helpers 默认使用 2 s 间隔,并接受 pollIntervalMs。
幂等键
每个 create 与 update 操作都支持幂等键。规则如下:- 为每一次“逻辑变更”使用 稳定、唯一、确定性 的 key。好例子:
create-song-${sourceHash}。坏例子:每次重试都生成一个新的 UUID。 - 在重试时复用 相同 的 key。服务端会识别重放并返回原始结果。
- Key 的作用域是 per-account,并在 24 小时后过期。
- 如果服务端返回
IDEMPOTENT_REPLAY_IN_PROGRESS(HTTP 202),说明原始请求仍在运行。等待后使用相同 key 重试。
错误恢复
根据error.code 与 error.retryable 分支处理。常见情况如下:
发现可变字段
在修改 presets 之前,先获取 preset schema,让模型知道有效字段与取值类型:youka project settings <id> --body ... 提交一个最小化的 update body。
每个代理会话获取一次并缓存结果。
并行代理
当多个代理并发对同一账号运行时:- 将幂等键同时限定到 代理身份 与 逻辑变更:
agent-${agentId}-create-${sourceHash}。这可以防止某个代理的重试与另一个代理的新请求发生冲突。 - 保持读取操作不受限制 —
GET请求很便宜且没有副作用。 - 如果你需要有序的导出历史,每个 project 对
POST /projects/{projectId}/exports使用单一队列;否则导出结果可能会乱序到达。
下一步
- CLI global options — 代理可用的所有 flag
- SDK errors — 完整错误类参考
- API async jobs — 轮询约定
- API idempotency — 幂等约定
