长任务 AI Agent 需要任务系统,而不只是更好的聊天窗口
让 AI 任务可以暂停、审批、安全重试、人工接手并交付可验证结果的产品架构。
最后更新

Agent 看起来还在工作,产品却可能已经失去对这项工作的控制。
进度条还在移动,模型也仍在输出。随后某个工具超时、浏览器刷新,第二天回来的人无法回答:它已经做了什么?从哪里安全重试?现在到底需要谁做决定?
这首先不是模型问题,而是任务系统问题。
当 AI 从回答问题,进入研究、写代码、处理文件、跨系统操作和准备面向客户的内容时,聊天窗口只适合展示对话,不适合承载状态、审批、重试、交接、产物和取消。用户需要的不是一段看起来很忙的对话,而是一项能看懂、能控制、能恢复的工作。
OpenAI 在 2026 年 7 月关于长时间 Codex 工作的公开实践强调:准备好环境、给出明确任务和验收条件、再对产物反馈。可迁移的结论不是每个产品都该加入编程 Agent,而是长任务必须在一份“工作契约”里运行,不能靠无限延长提示词。
判断标准不是任务做多久
两分钟的任务可能需要持久化处理,一小时的任务也可能不需要。真正的判断是:这次运行丢失或重复时,是否会带来明显成本或不确定性。
当下列情况至少出现两项,就该把工作从聊天式交互迁入任务系统:
- 任务会暂停,或超出一次浏览器请求的生命周期;
- 它会发消息、写 CRM、发布页面、创建账单或部署代码;
- 它消耗模型、付费数据、API 配额、计算资源或试用额度;
- 它会交付给另一个人使用,例如补丁、报告、导出文件或客服答复;
- 重试可能造成重复扣费、重复联系客户、覆盖新数据或重复写入。
上下文工程解决的是 Agent 能否基于正确资料做判断;任务系统解决的是中断后人和软件如何接回这项工作。两者不能互相替代。
最小状态机比“正在思考”更有价值
小团队最初不需要复制一套企业工作流平台。一个朴素状态机就够用:
| 状态 | 产品必须向用户说明什么 | 至少保存什么 |
|---|---|---|
| 已排队 | 已接收,但尚未开始 | 输入版本、发起人、预算、优先级 |
| 执行中 | 正在已知边界内工作 | 当前步骤、工具调用、消耗、检查点 |
| 等待中 | Agent 无法安全继续 | 缺少的资料、负责人、截止时间、建议动作 |
| 等待审批 | 关键动作已经准备好 | 证据、影响范围、精确动作、批准/拒绝路径 |
| 已完成 | 已有可使用的结果 | 产物、验收结果、总成本、接收人 |
| 失败或已取消 | 已停止,不能假装成功 | 最后安全检查点、原因、恢复方式 |
状态的意义不在于“看上去专业”,而在于它改变用户下一步能做什么。真正需要的是“上传缺失文件”或“批准发送给这 20 位客户”时,继续显示“执行中”没有任何帮助。
每项任务还应保存输入快照、允许使用的工具和权限、预算上限、来源材料、检查点、所有外部副作用,以及最终交付物。聊天记录可以作为证据,但不是可靠的任务记录。
检查点让任务可以恢复
检查点不是“仍在思考”这种装饰性提示,而是一个可被检查、可被接续的持久边界。
市场研究任务的检查点可以是“来源已收集和去重,尚未开始写结论”;代码任务可以是“当前分支测试通过,尚未创建 PR”;运营任务可以是“CRM 记录已匹配,但尚未联系客户”。
每个检查点必须具备三件事:
- 有一个命名的产物或状态变化,不需要重读整段对话也能检查。
- 有明确下一步,继续、等待、提问还是停止。
- 有重试边界,重跑下一步不会悄悄重复已经完成的操作。
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 才不会只是一个有说服力的聊天框。

