Agent Product 101|03|Control Plane:让用户能控制 Agent

Control Plane 是 Agent 产品的信任层:用户如何看见计划、预览结果、审查变化、批准动作、接管执行、回滚失败,并在不完全信任模型的前提下安全委托任务。

Agent Product 101|03|Control Plane:让用户能控制 Agent

核心结论

Agent 产品越能行动,越需要 Control Plane。

Control Plane 指的是:用户和组织用来观察、约束、修改、批准、暂停、接管、回滚和验收 Agent 行动的产品层。

它不是附加按钮,也不是高级设置。对 Agent Product 来说,Control Plane 是信任机制本身。

如果 Agent 只能告诉用户“我正在做”或“我做完了”,用户其实无法判断它是否可靠。用户需要看到:它打算做什么、已经做了什么、下一步要做什么、哪些动作会影响外部系统、哪些结果可以先预览、哪些修改可以 review、出错后能否暂停恢复或回滚、高风险动作是否必须等待批准。

Control Plane Model

上一篇讲 Task Surface:用户能把什么任务交给 Agent。
这一篇讲 Control Plane:Agent 做任务时,用户如何保持控制。

为什么聊天框不够

聊天框适合表达意图,也适合补充上下文。但聊天框并不天然适合作为控制面。

Agent 的行动过程不是线性文本对话。它可能在后台规划、读取文件、浏览网页、调用 API、修改代码、运行测试、部署应用、更新 CRM、发送消息、等待审批。这些动作有不同风险、耗时和失败方式。

如果所有控制都塞回聊天框,用户会遇到几个问题:

  • 看不见结构化计划,只能读一段自然语言解释。
  • 看不见中间状态,只能等最终结果。
  • 看不见 diff、preview、logs、approval request。
  • 很难准确暂停某一步或撤销某个动作。
  • 很难区分“建议”“草稿”“已执行动作”。
  • 失败时只能重新发 prompt,而不是从某个状态恢复。

成熟 Agent 产品通常会在聊天框之外生长出一层控制面:Plan Mode、Preview、Diff Viewer、PR Review、Checkpoint、Approval Card、Admin Policy、Run Log、Task Dashboard、Takeover Button。这些形态不同,本质上都属于 Control Plane。

从真实产品看 Control Plane

Control Plane Across Products
产品类型 典型控制面 PM 应该观察什么
Replit Agent Plan、Preview、Logs、Checkpoint、Rollback、Deploy idea 到 running app 的风险如何被拆成可观察、可恢复节点
Lovable / Cursor Plan Mode 行动前如何暴露范围、顺序、风险和需要用户选择的地方
Claude Code / Codex / Cursor Diff、test output、review loop 代码变化如何被检查、测试、撤销和合并
ChatGPT Agent Pause、takeover、sensitive action confirmation 个人高风险动作前如何让用户介入
Copilot Studio / Agentforce Admin controls、policy、audit、connector governance 组织如何控制谁能创建、发布、连接、执行和审计 Agent

Replit:Plan、Preview、Checkpoint、Rollback

Replit Agent 的控制面适合理解 App-building Agent。用户给出应用想法后,Agent 在云工作区中创建文件、安装依赖、运行服务、显示 preview、处理错误,并持续生成 checkpoints。

这些控制点让用户不必一次性相信 Agent。用户可以先看计划,再看 preview,再决定是否继续;如果结果变差,可以回滚;如果应用可用,再部署。

对 App Builder 来说,Control Plane 的核心不是“多给几个按钮”,而是把 idea → app → preview → deploy 之间的风险拆成可观察、可确认、可恢复的节点。

Lovable 和 Cursor:Plan Mode

Plan Mode 把“先想清楚再行动”产品化。Agent 先理解任务、提出方案、列出将要修改的部分,然后等待用户确认或调整。

这和普通解释不同。普通解释是 Agent 已经生成结果后补充说明;Plan Mode 是行动前的控制关口。

它适合范围不清、会修改多个文件、影响 UI 或产品行为、成本较高、需要用户选择方向的任务。价值不是让 Agent 看起来谨慎,而是把任务边界、执行顺序和风险提前暴露给用户。

Developer Agent:Diff 和 Review

代码 Agent 的输出不应该只是“我已经修改好了”。它应该交付可 review 的对象:文件 diff、branch、commit、pull request、test output、review comment。

Diff 是 Developer Agent 的核心控制面。它让用户看到改了哪些文件、每个文件改了什么、是否出现意外范围扩张、测试是否通过、是否需要人工补充审查。

如果没有 diff 和 review loop,Coding Agent 就只是代码生成器。

ChatGPT Agent:Takeover 和敏感动作确认

Personal Agent 的控制面更接近接管和动作确认。当 Agent 操作浏览器、网页、文件或外部服务时,用户必须知道哪些动作可以自动执行,哪些动作需要确认,哪些动作需要自己接管。

登录、支付、发送消息、提交表单、修改个人数据、访问敏感网页、执行不可逆操作,都不能只靠模型“自觉谨慎”。产品应该明确提供 pause、resume、stop、takeover、confirmation 等控制点。

企业 Agent:Admin Controls

企业 Agent 的控制面不只给终端用户,也给管理员、安全团队和业务负责人。

Copilot Studio、Agentforce 这类平台需要回答:谁能创建 Agent?谁能发布?能连接哪些数据源?哪些 action 需要审批?哪些渠道可以启用?日志保存在哪里?哪些失败需要告警?哪些行为需要审计?

企业关心的不只是一个任务是否完成,还包括权限、合规、审计、数据边界和生命周期。

Control Plane 的六个控制点

从这些产品可以抽象出六个关键控制点。

Control Loop
控制点 核心问题 适合场景 好设计的标准
Plan Agent 准备怎么做? 范围不清、步骤多、成本高、风险高 暴露范围、步骤、数据、工具、风险和确认点
Preview 如果继续,会得到什么? 应用、页面、邮件、CRM 更新、报告 让用户在不可逆动作前看到结果
Diff Agent 改了什么? 代码、文档、配置、workflow、record 显示变化范围、影响对象和意外修改
Approval 这个动作是否允许执行? 发送、发布、合并、退款、写回、启用连接器 展示动作、原因、影响、风险、可撤销性
Takeover 人类能否接手? 浏览器操作、客服对话、事故处理、复杂调试 接管时带上状态、历史、卡点和下一步
Rollback 出错后能否恢复? checkpoint、branch、draft、workflow version 能回到安全状态;不可逆动作前移控制点

Plan:行动前的控制

Plan 回答 Agent 准备怎么做。好的 Plan 不应该只是长篇解释,而应该暴露关键决策:任务范围、主要步骤、需要读取的数据、需要调用的工具、可能影响的对象、风险点、需要确认的地方。

Plan 不是为了让用户审批每一个细节,而是让用户能在 Agent 走错方向前发现问题。

Preview:发布前的控制

Preview 回答如果继续会得到什么。App preview、设计预览、邮件草稿、CRM 更新建议,本质上都是 preview。Preview 的作用是把不可逆动作变成可审查的中间对象。

用户不需要相信 Agent 说“我做得很好”,而是可以直接看结果。

Diff:变化审查的控制

Diff 回答 Agent 改了什么。它不只属于代码,也适用于文档、配置、CRM 字段、workflow、权限策略、知识库内容。

任何会改变外部系统状态的 Agent,都应该尽量提供 diff 或等价的 change summary。

Approval:高风险动作前的控制

Approval 回答这个动作是否允许执行。它可以是用户确认一次动作、管理员批准工具连接、reviewer 批准 PR、经理批准业务流程、安全团队批准数据访问策略。

只弹一个“确定吗?”是不够的。好的 Approval 要说明 Agent 要做什么、为什么需要这个动作、会影响哪些对象、风险是什么、执行后是否可撤销。

Takeover:人类接管的控制

Takeover 回答用户能不能在 Agent 不适合继续时接手。它常见于浏览器操作、表单填写、客服对话、销售沟通、事故处理、代码调试。

关键是上下文交接。如果用户接管时不知道 Agent 已经做了什么、卡在哪里、下一步打算做什么,接管成本会很高。

Rollback:失败后的控制

Rollback 回答出错后能否恢复到安全状态。它可以是 Replit checkpoint、Git revert、branch discard、draft deletion、CRM record restore、workflow version rollback、补偿动作。

但不是所有动作都能真正回滚。支付、消息发送、外部 API 调用、客户沟通,很多动作一旦发生就无法完全撤销。对于不可逆动作,控制点必须前移到 Plan、Preview 和 Approval。

控制面不是降低自主性

一个常见误解是:Control Plane 会让 Agent 不够自主。恰恰相反,没有控制面,用户不敢把高价值任务交给 Agent;有控制面,Agent 才能进入更复杂、更长、更高风险的任务。

自动驾驶系统需要方向盘、刹车、仪表盘和接管提示,不是因为它不够自动,而是因为没有这些控制,人类不会信任它进入真实道路。

成熟产品不是让 Agent 什么都自动做,而是根据风险选择控制强度。

动作风险 推荐控制方式 示例
低风险、可撤销 自动执行 + 留痕 读取公开文档、整理摘要、生成草稿
中风险、可审查 Preview 或 Diff 修改文档、生成页面、更新草稿字段
高风险、影响外部系统 Approval 发送消息、发布应用、写回 CRM、合并 PR
不可逆或责任重大 Approval + 人类责任记录 支付、退款、客户承诺、生产变更
异常或模型不确定 Takeover 或 Escalation 登录、复杂客服、事故处理、权限不足

控制强度应该和动作风险绑定,而不是和模型自信程度绑定。模型越自信,不代表动作越安全。真正决定控制方式的是动作影响什么对象、是否可撤销、是否涉及权限、是否影响他人、是否进入外部系统。

常见误区

只给 Stop Button

停止按钮重要,但它不是完整控制面。用户还需要知道什么时候该停止、停止后状态是什么、是否能恢复、是否已经产生外部影响。Stop Button 只能处理“正在发生”的风险,不能替代 Plan、Preview、Approval 和 Rollback。

把解释当成控制

Agent 解释自己做了什么,不等于用户能控制它。解释是事后理解;控制是事前约束、事中接管、事后恢复。如果用户只能听 Agent 汇报,而不能改变执行路径,这不是 Control Plane。

所有动作都要求确认

另一个极端是每一步都弹确认。这会让 Agent 退化成人肉脚本执行器。好的 Control Plane 应该基于风险分级:低风险、高频、可撤销的动作自动执行;高风险、低频、不可逆的动作必须确认。

控制面只给个人用户

企业 Agent 的控制面必须服务多个角色:终端用户需要任务控制,管理员需要权限和发布控制,安全团队需要审计和数据边界,业务负责人需要流程、质量和责任归属。

PM 检查清单

  • Agent 行动前,用户能否看到计划和影响范围?
  • 执行中,用户能否看到任务状态,而不只是等待最终回答?
  • 对可视化或内容结果,是否有 preview?
  • 对任何修改外部状态的动作,是否有 diff 或 change summary?
  • 哪些动作需要 approval?审批卡片是否展示影响对象、风险和可撤销性?
  • 用户能否 pause、resume、stop、takeover?接管时上下文是否完整?
  • 失败后能否 rollback、retry、recover?不可逆动作是否前置控制?
  • 企业场景中,admin、security、business owner 是否有自己的控制面?

小结

Control Plane 是 Agent Product 的信任层。它让用户不必在“完全相信 Agent”和“完全自己做”之间二选一。

成熟的 Agent 产品会提供一组分层控制点:Plan、Preview、Diff、Approval、Takeover、Rollback。这些控制点把 Agent 的行动过程拆成用户能理解、能判断、能介入、能恢复的阶段。

下一篇进入 Human-in-the-Loop:Control Plane 关注控制点本身;Human-in-the-Loop 关注人类作为流程节点如何参与 Agent 执行,包括审批、纠错、升级、协作和责任归属。

参考资料