Agent Product 101|03|Control Plane:让用户能控制 Agent
Control Plane 是 Agent 产品的信任层:用户如何看见计划、预览结果、审查变化、批准动作、接管执行、回滚失败,并在不完全信任模型的前提下安全委托任务。
核心结论
Agent 产品越能行动,越需要 Control Plane。
Control Plane 指的是:用户和组织用来观察、约束、修改、批准、暂停、接管、回滚和验收 Agent 行动的产品层。
它不是附加按钮,也不是高级设置。对 Agent Product 来说,Control Plane 是信任机制本身。
如果 Agent 只能告诉用户“我正在做”或“我做完了”,用户其实无法判断它是否可靠。用户需要看到:它打算做什么、已经做了什么、下一步要做什么、哪些动作会影响外部系统、哪些结果可以先预览、哪些修改可以 review、出错后能否暂停恢复或回滚、高风险动作是否必须等待批准。

上一篇讲 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

| 产品类型 | 典型控制面 | 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 的六个控制点
从这些产品可以抽象出六个关键控制点。

| 控制点 | 核心问题 | 适合场景 | 好设计的标准 |
|---|---|---|---|
| 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 执行,包括审批、纠错、升级、协作和责任归属。