长任务 AI Agent 需要任务系统,而不只是更好的聊天窗口

让 AI 任务可以暂停、审批、安全重试、人工接手并交付可验证结果的产品架构。

最后更新

OpenAI 公开评分卡文章截图,说明 AI 工作应从活动次数转向可验收且可衡量的结果

Agent 看起来还在工作,产品却可能已经失去对这项工作的控制。

进度条还在移动,模型也仍在输出。随后某个工具超时、浏览器刷新,第二天回来的人无法回答:它已经做了什么?从哪里安全重试?现在到底需要谁做决定?

这首先不是模型问题,而是任务系统问题。

当 AI 从回答问题,进入研究、写代码、处理文件、跨系统操作和准备面向客户的内容时,聊天窗口只适合展示对话,不适合承载状态、审批、重试、交接、产物和取消。用户需要的不是一段看起来很忙的对话,而是一项能看懂、能控制、能恢复的工作。

OpenAI 在 2026 年 7 月关于长时间 Codex 工作的公开实践强调:准备好环境、给出明确任务和验收条件、再对产物反馈。可迁移的结论不是每个产品都该加入编程 Agent,而是长任务必须在一份“工作契约”里运行,不能靠无限延长提示词。

判断标准不是任务做多久

两分钟的任务可能需要持久化处理,一小时的任务也可能不需要。真正的判断是:这次运行丢失或重复时,是否会带来明显成本或不确定性。

当下列情况至少出现两项,就该把工作从聊天式交互迁入任务系统:

  • 任务会暂停,或超出一次浏览器请求的生命周期;
  • 它会发消息、写 CRM、发布页面、创建账单或部署代码;
  • 它消耗模型、付费数据、API 配额、计算资源或试用额度;
  • 它会交付给另一个人使用,例如补丁、报告、导出文件或客服答复;
  • 重试可能造成重复扣费、重复联系客户、覆盖新数据或重复写入。

上下文工程解决的是 Agent 能否基于正确资料做判断;任务系统解决的是中断后人和软件如何接回这项工作。两者不能互相替代。

最小状态机比“正在思考”更有价值

小团队最初不需要复制一套企业工作流平台。一个朴素状态机就够用:

状态产品必须向用户说明什么至少保存什么
已排队已接收,但尚未开始输入版本、发起人、预算、优先级
执行中正在已知边界内工作当前步骤、工具调用、消耗、检查点
等待中Agent 无法安全继续缺少的资料、负责人、截止时间、建议动作
等待审批关键动作已经准备好证据、影响范围、精确动作、批准/拒绝路径
已完成已有可使用的结果产物、验收结果、总成本、接收人
失败或已取消已停止,不能假装成功最后安全检查点、原因、恢复方式

状态的意义不在于“看上去专业”,而在于它改变用户下一步能做什么。真正需要的是“上传缺失文件”或“批准发送给这 20 位客户”时,继续显示“执行中”没有任何帮助。

每项任务还应保存输入快照、允许使用的工具和权限、预算上限、来源材料、检查点、所有外部副作用,以及最终交付物。聊天记录可以作为证据,但不是可靠的任务记录。

检查点让任务可以恢复

检查点不是“仍在思考”这种装饰性提示,而是一个可被检查、可被接续的持久边界。

市场研究任务的检查点可以是“来源已收集和去重,尚未开始写结论”;代码任务可以是“当前分支测试通过,尚未创建 PR”;运营任务可以是“CRM 记录已匹配,但尚未联系客户”。

每个检查点必须具备三件事:

  1. 有一个命名的产物或状态变化,不需要重读整段对话也能检查。
  2. 有明确下一步,继续、等待、提问还是停止。
  3. 有重试边界,重跑下一步不会悄悄重复已经完成的操作。

Temporal 的 Workflow 文档讨论了持久执行的通用问题:工作不应被当成一次脆弱请求,失败后应该可恢复。你不必使用它的具体产品,但必须能回答:worker 重启、供应商超时、限流或用户合上电脑后会发生什么。

审批不是“确定吗?”按钮

人工审批应该发生在动作变得难以撤销、重复成本很高,或会影响外部对象之前,而不是邮件已经发出、记录已被覆盖、预算已花掉之后。

OpenAI Agents SDK 将 human-in-the-loop 设计为工具调用周围的中断点。这也适用于产品设计。审批界面必须让审核者做真实判断,而不是点一个令人安心的按钮。

审批卡至少展示:

  • 用自然语言说明的动作;
  • 受影响的人、记录、文件或目标系统;
  • 来源证据和不确定之处;
  • 金钱、数据或声誉后果;
  • 精确范围,例如收件人、部署环境、记录数;
  • 批准、修改参数、拒绝、停止四种可理解的选项。

一个实用原则是:草稿可以自由生成,执行必须谨慎。客服 Agent 可以先起草回复;按错政策发送则是另一类行为。编程 Agent 可以提出补丁;合并、部署或轮换密钥则需要独立决策和可见的回滚路径。

重试需要幂等、预算和停止条件

最贵的 Agent 失败通常不是一次大事故,而是一个循环。慢接口被重试五次;超时后服务其实已经处理,产品却又提交一次;任务从头运行,再次给客户发邮件;宽泛搜索在产出第一条有用结果前花完月度预算。

对每个外部动作,都要保存幂等键或等价的“这个动作是否已发生”记录。再为任务设置预算、重试次数、超时和失败负责人,并写清停止条件:例如“两次来源抓取失败后暂停”“超过 10 美元前请求批准”“三次有边界的尝试仍没有可验收产物就取消”。

这也是按成功任务计算 AI ROI真正落地的地方。单次模型调用再便宜,只要任务不断失败、等待人工或无人接收,整体仍然昂贵。要测量完整任务和恢复成本,而不是只看 token。

先选一个值得“变得无聊”的任务

不要一开始就给 Agent 接入所有业务系统。先选一个重复发生、输入有边界、产物容易识别的任务,例如每周竞品简报、结构化客服草稿队列、仓库 issue 分类,或文档整理进 CRM 的准备工作。

用十个真实任务跑一周,逐项记录输入是否完整、最后到达哪个检查点、向人补问了几次、重试是否安全、交付物是否通过验收、总模型/工具/审核成本,以及为何停止或升级。结束时不要问演示是否看上去“全自动”,而要问任务是否更可靠、更容易检查、出错后更便宜地恢复。

并非每个 AI 功能都需要队列或任务历史。即时、低成本、可撤销且可以随时丢弃的改写建议、解释或分类,仍适合聊天窗口。分界线是责任:当用户期待稍后拿到结果、期待别人能信任它,或重复动作会造成伤害时,产品就应该交付一项可检查、可控制的任务。

权限层可结合 AI Agent 安全检查表;质量与成本层可结合 AI ROI 评分卡。这样 Agent 才不会只是一个有说服力的聊天框。