Planner-Executor 分层实战:如何系统性降低 Agent 幻觉执行
Agent 真正危险的不是“答错”,而是“做错”。本文从 Planner-Executor 分层架构出发,讲清执行幻觉的来源、任务契约设计、二次确认与监督回路,并给出可直接落地的接口与评测方案,帮助团队把“能跑 demo”升级为“可控生产执行”。

📷 Photo by cottonbro studio via Pexels
一、为什么 Agent 会“幻觉执行”
大多数团队把幻觉理解为“模型说错话”,但在工具化 Agent 里,真正高风险的问题是:
- 模型把不确定当成确定
- 把“建议”当“指令”
- 在上下文缺失时硬执行工具
这类问题的共同根因是:规划与执行耦合在一个生成回合里。当同一模型同时负责“想清楚”和“动手做”,就很容易出现逻辑跳步:计划还没稳定,动作已经提交。
因此,第一原则不是“让模型更聪明”,而是“让系统更可控”。
二、Planner-Executor 的最小分层模型
一个可落地的分层,不需要复杂到多 Agent 编排,先做三层就够:
- Planner(规划层)
- 只产出任务图,不直接调用外部工具
- 输出内容必须结构化:目标、约束、步骤、依赖、成功条件
- Executor(执行层)
- 只接受结构化任务,不自由发挥
- 对每个步骤执行前检查输入完整性、权限和前置条件
- Supervisor(监督层,可选但强烈建议)
- 对 Planner 输出做静态检查
- 对 Executor 动作做动态拦截与风险分级
关键点在于:每层都有限定职责,减少“跨层自由推断”。
三、任务契约(Task Contract):降低幻觉的核心接口
很多团队失败在“接口太自由”。如果 Planner 输出只是自然语言,Executor 只能猜。
建议统一任务契约:
{
"goal": "整理并回复并发邮件",
"constraints": ["仅处理本周邮件", "不得发送外部域名"],
"steps": [
{
"id": "s1",
"action": "list_emails",
"inputs": { "folder": "inbox", "since": "2026-03-01" },
"risk": "low",
"dependsOn": []
},
{
"id": "s2",
"action": "draft_reply",
"inputs": { "tone": "professional" },
"risk": "medium",
"dependsOn": ["s1"]
},
{
"id": "s3",
"action": "send_email",
"inputs": { "requireApproval": true },
"risk": "high",
"dependsOn": ["s2"]
}
],
"successCriteria": ["草稿覆盖所有高优先邮件", "高风险发送需人工确认"]
}
你会发现,契约天然带来三种收益:
- Planner 不再“口头规划”
- Executor 不再“临场创作”
- Supervisor 可以程序化审计
四、执行确认不是“多一步弹窗”,而是风险分层机制
在生产系统里,确认机制常见两个误区:
- 所有动作都要确认,用户体验崩溃
- 没有任何确认,事故概率陡增
正确做法是按风险分层:
- 低风险(可逆、无外部副作用):自动执行
- 中风险(影响业务状态,可补偿):策略确认(规则+抽样人工)
- 高风险(不可逆或高成本):强制人工审批
这不是 UX 问题,而是 SRE 与合规问题。你在设计确认弹窗时,本质是在定义“责任转移点”。
五、减少幻觉执行的 4 个工程闸门
1)输入完整性闸门
执行前检查所有必填字段,缺失即拒绝执行并回 Planner 补计划。
2)权限闸门
每个工具动作绑定最小权限 Scope,Planner 不能越权生成动作。
3)状态一致性闸门
执行前二次读取关键状态(如余额、库存、日历冲突),防止“计划时正确、执行时过期”。
4)幂等与回执闸门
每一步都有 idempotencyKey 与执行回执,避免重试导致重复副作用。
六、如何评估“幻觉执行率”是否真的下降
不要只看“任务成功率”,至少再加三类指标:
- Unsafe Action Rate:越权/缺参/高风险误执行比例
- Approval Intercept Precision:审批拦截命中率(拦住了多少真正危险动作)
- Plan Repair Rate:规划被监督器打回后的修复成功率
实践中你会看到:
- 引入分层后,首轮时延略增
- 但事故率与回滚成本显著下降
这类系统优化不是“更快”,而是“更稳地快”。
七、从 MVP 到可扩展架构的迭代路径
你可以按下面节奏推进:
- 第 1 周:Planner 输出结构化任务契约
- 第 2 周:Executor 增加 4 个闸门
- 第 3 周:上线高风险审批与审计日志
- 第 4 周:引入 Supervisor 自动打分与回退
如果你已经在做超时、回滚、限流治理,可以联动阅读: