Agent
Agent 是一次带工具的多步执行。它和普通对话的区别在于:模型可以调用工具、拿到结果、继续下一步,直到给出最终回答。
建 Agent
Section titled “建 Agent”新建时选一个 chat 模型,再勾选要开放的工具。工具目录来自 GET /api/v1/tools,内置三个:
- 知识库检索
- 会话检索
- 计算器
模型必须支持 tool calls。引导页里取消勾选“支持工具调用”后,Agent 不能创建,也不能运行。
发起一次 run
Section titled “发起一次 run”POST /api/v1/agents/{id}/runs,请求体里放 input。响应是 SSE 流,首帧永远是 run_started,data 里是 runId。
首帧在新建和幂等重放两种情况下都会发,形状相同。取消、重订阅、跳转运行详情都要用这个 id。
之后的事件包括工具调用、工具结果、token、citation、error、done。
每一步调了哪个工具、传了什么参数、拿到什么结果,都会写进 agent_run_steps。运行详情页可以逐步查看。
排查问题时,轨迹能回答模型为什么选了那个工具、工具返回了什么、下一步为什么停。
POST /api/v1/runs/{runId}/cancel。终态是 cancelled,不是 failed。
取消只让这次 run 停止继续往下走;已经执行过的工具调用会留在轨迹里,副作用不会回滚。
进程崩溃或中断后,run 会停在 interrupted。POST /api/v1/runs/{runId}/resume 从断点继续。
能不能自动重放,取决于工具声明的副作用等级:
- 只读工具、可幂等重放的写工具:可以重放。
- 声明了不可幂等、或者效果账本显示副作用已经发生的工具:拒绝自动恢复,提示重新发起。
被拒绝的 run 不会自己好。重新发起是唯一安全的下一步。
没有定时触发
Section titled “没有定时触发”v5.0.2 只能手动发起 run。没有 cron、webhook 或事件触发。要定时跑,得在外面写调度,再调 API。
发起 run 接受 Idempotency-Key。同一个键重发不会触发第二次执行;服务端把那条 run 已经记录的事件按原 event_id 补发一遍。
网络超时后重试时用它,避免同一条任务跑两遍。