从聊天框到工作流:理解 AI Agent 人机协作的下一次升级

0 阅读13分钟

从聊天框到工作流:理解 AI Agent 人机协作的下一次升级

cover.png

很多人第一次用 Agent,都会天然地把它理解成一个更强的聊天机器人。

你给它一个任务,它在对话框里回复;你发现哪里不对,再追问一句;它继续生成一大段解释;你再指出问题,它又重新开始。

这个模式在问答、翻译、改一段代码时还可以接受。可一旦任务变长,比如“重构一个模块”“审查一批合同”“调研竞品并生成报告”“在老系统里完成一个跨接口改动”,聊天框很快就会暴露出三个问题:

  • 过程不可见:你不知道它到底拆了哪些子任务。
  • 决策不可审查:你不知道它为什么选了这个方案。
  • 状态不可恢复:中途失败、跑偏、被打断以后,很难从正确的位置继续。

05-chat-agent-failures.png 所以今天这篇想讲一个判断:

AI Agent 的下一代交互形态,不会只是一个更聪明的聊天框,而会更像一个可审查、可暂停、可恢复、可回滚的工作流审查台。

这不是概念包装,而是 Agent 真正进入复杂工作的基础设施变化。


一、为什么聊天框不适合复杂 Agent

聊天框最大的问题,不是“不能输入自然语言”,而是它把复杂工作压扁成了一条线。

真实任务通常不是一条线,而是一棵工作树。

比如让 Agent 修改一个老项目里的结算逻辑,它可能需要同时做这些事:

  • 理解当前需求;
  • 找到结算入口;
  • 追踪优惠、库存、支付、订单状态之间的依赖;
  • 修改代码;
  • 补测试;
  • 跑验证;
  • 分析失败日志;
  • 生成变更说明;
  • 等待人类确认高风险决策。

这些步骤之间不是简单的“第一步、第二步、第三步”。它们会分支、并行、失败、重试、合并。某个节点可能需要等人确认,另一个节点却可以继续执行。

但聊天框会把所有东西压成:

用户说一句
Agent 回一段
用户再追问
Agent 再回一段

这就像你明明在管理一个 Git 仓库、一个 CI 流水线、一个任务看板,却非要把所有信息都塞进微信聊天记录里。

短期能用,长期一定混乱。

ChatGPT Image 2026年5月20日 21_13_38.png

Legora CTO Jacob Lauritzen 在一次关于 Agent 交互的分享里也强调过类似问题:复杂 Agent 工作的瓶颈,已经不只是执行,而是规划、审查、信任和控制。复杂任务更像一个 DAG,而不是一条对话流。

这也是为什么“Agent 需要超越 Chat”这个话题会越来越重要。


二、Agent 的瓶颈正在从“执行”转向“审查”

过去我们担心的是:AI 能不能做。

现在更现实的问题是:AI 做了以后,人类能不能放心地验。

OpenAI 在 Harness Engineering 文章里有一句很适合概括这个变化:Humans steer. Agents execute. 更关键的是,工程团队的主要工作会从亲手写每一行代码,转向设计环境、表达意图、构建反馈回路,让 Agent 能可靠地完成工作。

这句话放到所有复杂 Agent 场景里都成立。

当执行变便宜以后,真正贵的是这些环节:

  • 前期如何把任务拆对;
  • 中途如何发现 Agent 跑偏;
  • 哪些决策必须交给人类;
  • 结果如何低成本验证;
  • 出错以后如何回滚或从断点继续。

这和传统软件工程很像。

我们不会要求一个开发者把所有工作都写在聊天记录里。我们会让他提交 PR、跑 CI、写变更说明、接受 Code Review、保留 commit 历史。因为复杂协作从来都不是靠“我相信你”完成的,而是靠可见的过程、可审查的差异、可回放的证据完成的。

Agent 也是一样。

一个生产级 Agent 系统,不能只追求“自动完成”,还要回答:

  • 它现在执行到哪里了?
  • 它为什么做这个判断?
  • 它引用了哪些证据?
  • 它调用了哪些工具?
  • 它改了哪些东西?
  • 人类可以在哪些节点介入?
  • 失败以后能不能恢复?

如果这些问题没有答案,那么 Agent 越强,风险越大。


三、MCP 和 A2A 解决的是连接,不是协作本身

最近 Agent 生态里有两个高频词:MCP 和 A2A。

MCP 解决的是 Agent 如何连接外部系统。官方文档把它类比成 AI 应用的 USB-C 接口:让 AI 应用可以连接文件、数据库、搜索、工具和工作流。

A2A 解决的是 Agent 之间如何通信。Google 在 2025 年 4 月发布 Agent2Agent 协议,目标是让不同厂商、不同框架里的 Agent 能更标准地发现、通信和协作。

这两个方向都很重要,但它们还不是完整答案。

因为复杂工作不只是“能连接工具”和“能让 Agent 互相说话”。真正难的是:

  • 谁负责拆任务?
  • 谁记录状态?
  • 谁决定暂停?
  • 谁判断结果是否可信?
  • 谁保留决策依据?
  • 谁允许回滚?
  • 谁告诉人类现在该看哪里?

换句话说,MCP 像是工具接口,A2A 像是通信协议,但复杂 Agent 还需要一个工作流底座。

这个底座至少要包含:

层级作用
Product UI不只是聊天框,而是文档、表格、看板、审查队列
Review Log记录决策、证据、版本、人工批准和回滚
State保存任务状态、断点、进度、环境信息
Harness管理计划、工具调用、权限、验证和错误恢复
Protocols通过 MCP 连工具,通过 A2A 连其他 Agent

02-agent-workflow-stack.png

没有这个底座,Agent 只是会动的模型;有了这个底座,它才开始变成可靠的工作系统。


四、为什么“异步审查”比“实时追问”更适合人机协作

很多 Agent 产品默认把 Human-in-the-loop 做成实时确认:

是否继续?
是否执行?
是否允许?
是否接受?

这看起来安全,实际上很容易把人拖垮。

如果 Agent 每一步都问你,它就不再是代理,而是一个需要你不断喂指令的实习生。你没有省下注意力,只是把写代码、查资料的负担,换成了看弹窗、点确认的负担。

更理想的方式,是非阻塞式的异步协作。

当 Agent 遇到不确定节点时,不一定要立刻停下来等人。它可以先根据当前信息做一个临时决策,继续完成后续低风险步骤,同时把这个决策记录到审查队列里:

决策点:合同终止条款是否标为高风险
Agent 临时判断:标为高风险
依据:公司政策库 + 过去 12 份黄金合同
影响范围:风险清单、最终报告
人工动作:批准 / 修改 / 回滚

这样,人类不需要被每个节点打断,而是可以在自己方便的时候批量审查。

这和代码审查非常像。

你不会在同事写代码的每一行都冲过去问一句“你确定吗”。你会等他提交一个可审查的变更,然后看 diff、看测试、看说明、看风险点。

Agent 也应该这样。

03-async-review-board.png

从同步问答升级到异步审查,本质上是把人类从“实时监工”变成“高杠杆 reviewer”。

ChatGPT Image 2026年5月20日 21_18_51.png

五、可恢复状态比长上下文更重要

很多人解决 Agent 复杂任务失败的第一反应,是要更长上下文。

长上下文当然有价值,但它不能替代状态管理。

长上下文解决的是“还记不记得”。状态管理解决的是“能不能从正确的位置继续”。

LangGraph 的 durable execution 文档里有一个很工程化的定义:工作流在关键点保存进度,使它可以暂停,并在之后从中断处继续。这对人类介入、长任务、超时、失败恢复都很关键。

这件事放到 Agent 系统里尤其重要。

一个 Agent 执行长任务时,至少要保存:

  • 当前目标;
  • 已完成节点;
  • 未完成节点;
  • 每个节点的输入输出;
  • 调用过的工具和参数;
  • 外部副作用;
  • 人类批准记录;
  • 失败原因和重试次数;
  • 当前产物版本。

没有这些状态,Agent 一旦失败,就只能从头再来,或者靠一段压缩后的聊天摘要继续猜。

这就是很多长任务越聊越差的根源。

真正可靠的 Agent,不应该依赖“它刚好还记得”,而应该依赖“系统明确保存了它做到哪里”。


六、控制和信任是一组二维坐标

很多讨论会把 Agent 的使用方式分成两个极端:

  • 完全自动:让它自己做完;
  • 完全人工:每一步都确认。

这两个极端都不够。

更好的判断方式,是把任务放到一个二维坐标里:

  • X 轴:控制。人类能不能随时引导、暂停、修正、接管。
  • Y 轴:信任。这个任务的结果是否容易验证,失败成本是否可控。

不同区域的策略完全不同。

类型适合策略
高信任、低风险可以自动执行,只保留日志
中信任、中风险先执行,再进入审查队列
低信任、高风险必须人工批准后执行
难验证任务先降维成可验证子任务

04-control-trust-matrix.png

比如代码格式化、补注释、批量改 import,验证成本低,可以交给 Agent 自动完成。

但数据库迁移、生产配置变更、合同条款判断、外部支付调用,就不能只靠一句“相信我”。这些任务必须有审批、回滚、审计和权限边界。

信任不是凭空产生的,它来自可验证性、边界、历史表现和可控风险。


七、从聊天框走向工作流,最小可落地怎么做

你不需要一开始就搭一个庞大的 Agent 平台。

对开发团队来说,可以先从 6 件事做起。

1. 每个任务都生成计划,但计划必须可修改

不要让 Agent 只在聊天里说“我将分三步完成”。

计划应该变成结构化对象:

{
  "goal": "修改结算优惠逻辑",
  "steps": [
    {"id": "S1", "task": "定位结算入口", "risk": "low"},
    {"id": "S2", "task": "分析优惠叠加规则", "risk": "medium"},
    {"id": "S3", "task": "修改代码并补测试", "risk": "medium"},
    {"id": "S4", "task": "确认数据库兼容性", "risk": "high", "requires_review": true}
  ]
}

人类可以修改计划,Agent 按计划执行,执行过程反过来更新计划。

2. 每个节点保存状态

节点不是一句话,而是一个可审查单元:

{
  "step_id": "S4",
  "status": "waiting_review",
  "input": "检查数据库兼容性",
  "output": "发现旧字段 nullable,需要人工确认迁移策略",
  "evidence": ["schema.sql", "2025-11-migration.md"],
  "decision": "暂停外部写入",
  "next_actions": ["approve", "revise", "rollback"]
}

这比聊天摘要可靠得多。

3. 高风险动作必须审批

高风险动作包括:

  • 写数据库;
  • 调用外部付费 API;
  • 删除文件;
  • 修改生产配置;
  • 合并 PR;
  • 对外发送消息;
  • 影响法律、财务、合规判断。

这些动作不应该只靠模型自觉,而应该由系统强制拦截。

4. 工具调用必须可回放

每次工具调用至少记录:

  • 工具名称;
  • 输入参数;
  • 输出结果;
  • 错误信息;
  • 重试次数;
  • 耗时;
  • 触发它的计划节点。

这不是为了写日志好看,而是为了在出错时能定位:

到底是模型判断错了?
工具返回错了?
参数传错了?
还是外部环境变了?

5. 产物应该进入工作区,而不是留在聊天里

复杂任务的结果不要只是一段聊天回复。

它应该落到具体产物里:

  • 代码变更;
  • PR;
  • 文档;
  • 表格;
  • 审查清单;
  • 决策日志;
  • 测试报告;
  • 看板卡片。

聊天适合启动任务,不适合承载整个任务。

6. 用评测驱动信任,而不是用感觉判断

你可以给 Agent 建一个最小评测面板:

指标含义
任务完成率是否真的交付目标
首轮通过率第一次执行是否通过测试或审查
人工介入次数人类被打断多少次
回滚次数Agent 决策被推翻多少次
高风险误判数是否越权、误删、误调用
平均恢复时间失败后多久能继续

只有这些指标变好,才说明 Agent 真的更可靠。

06-implementation-checklist.png


八、未来的 Agent 产品会更像“工作区”,不是“聊天页”

如果把前面这些点连起来,会得到一个很清晰的产品方向:

Agent 的入口仍然可以是聊天。

但真正承载工作的地方,会是一个更高带宽的工作区。

这个工作区里应该有:

  • 任务树;
  • 执行状态;
  • 工具调用记录;
  • 产物预览;
  • 人工审查队列;
  • 权限审批;
  • 版本差异;
  • 回滚按钮;
  • 指标面板;
  • 知识和规则入口。

聊天负责表达意图,工作流负责完成任务,审查系统负责建立信任。

这才是 Agent 从玩具走向生产力系统的关键一步。


结尾:Agent 不是替你聊天,而是替你推进工作

聊天框让 Agent 变得容易上手,但也限制了它处理复杂任务的上限。

当任务很短、风险很低、结果容易判断时,聊天足够好。

但当任务变长、风险变高、需要多人协作、需要留下证据时,聊天就不够了。我们需要的是一个可审查的异步工作流:

  • 任务能拆分;
  • 状态能保存;
  • 过程能查看;
  • 决策能审查;
  • 人类能介入;
  • 失败能恢复;
  • 结果能验证。

未来真正好用的 Agent,不会只是一个回答更好的聊天机器人。

它会更像一个能进入你工作区、理解你的产物、遵守你的流程、接受你的审查,并且能在失败后继续推进工作的协作者。

AI Agent 的终局,不是把人困在聊天框里。

而是把机器的执行力,嵌入到人类已经熟悉、可控、可审查的工作流里。


参考资料