Skills 托管执行导读

托管执行适合把原来散落在客户端的执行循环收回服务端,便于统一限制、计费和观察。

托管执行解决的重点不是“模型能不能多跑几步”,而是 谁来控制执行循环、谁来承担可观测性和费用解释。 如果你的客户端已经在重复写 tool loop、step 限制和安全中止逻辑,那说明你已经接近托管执行的使用时机。

它真正接管了什么

NameTypeRequiredDescription
execution.mode = "managed"
stringRequired显式开启托管执行,告诉系统由平台接管执行循环。
max_steps
integer最多允许执行多少步。防止 agent loop 无限延长。
max_duration_ms
integer最长执行时间。你不该让托管执行无限吃掉延迟预算。
max_tool_calls
integer最多允许调多少次 tool。避免外部 API 和账单失控。

最小请求

json
{
  "model": "openai/gpt-4.1",
  "messages": [{ "role": "user", "content": "帮我查一下今天的发布回归,再给出修复建议。" }],
  "skills": [{ "id": "web-search" }],
  "execution": {
    "mode": "managed",
    "max_steps": 6,
    "max_duration_ms": 15000,
    "max_tool_calls": 3
  }
}
托管执行不是无限代理
平台托管的是循环,不是替你承担所有产品边界。你仍然要决定哪些 skills 可用、外部 API 费用是否值得、 最大 step / duration 应该多少,以及哪些请求根本不该进入托管执行。

什么时候该启用

  • 你已经在多个客户端里重复写相同的 tool loop。
  • 你需要统一的 request-level 账本,而不是每个工具自己记一份成本。
  • 你需要统一的 step / duration / tool-call 限制。
  • 你准备把联网搜索、响应修复、schema 修复放进一条更稳定的执行链。

最容易犯的错

text
1. 开了 managed,却不设 max_steps / max_duration_ms。
2. 以为托管执行会替你自动解决权限和费用治理。
3. 把不需要多步执行的简单请求也塞进 managed。
4. 只看最终回答,不看执行过程中用了哪些 skills 和 tool calls。

下一步