从状态、动作、目标、约束、启发式、搜索树、剪枝、回溯和验证器,理解 Agent 为什么会卡住、绕圈、短视或乱试
| 要素 | 它回答什么 | 在 AI / Agent 里的表现 | 缺失时会怎样 |
|---|---|---|---|
| 状态 | 系统现在处在什么局面 | 当前上下文、工具返回、文件状态、用户目标、权限和历史步骤 | Agent 不知道自己已经做过什么,容易重复或覆盖 |
| 动作 | 下一步能做什么 | 调用工具、检索、写文件、运行测试、询问用户、停止任务 | 模型只会“想”,无法把计划变成外部变化 |
| 目标 | 什么算完成 | 任务验收标准、测试通过、用户确认、业务状态达成 | 计划没有终点,容易无限细化或提前收工 |
| 约束 | 哪些路径不能走 | 权限边界、成本预算、安全策略、时间限制、不可破坏文件 | 越强的 Agent 越可能高效地做错事 |
| 启发式 | 优先探索哪些方向 | 经验规则、模型置信、任务分解、工具选择偏好 | 搜索空间爆炸,或者总是被表面线索带偏 |
| 验证器 | 怎么知道路径对不对 | 单元测试、类型检查、引用校验、Judge、人工复核 | 模型可能自信地沿错误路径继续推进 |
| 回溯 | 走错后能否退回 | 检查点、版本快照、补偿动作、撤销策略 | 一步错导致后续全错,长任务难以恢复 |
规划不是“让模型列一个待办清单”,而是在状态空间里选择一条受约束、可验证、可恢复的行动路径。
| 爆炸来源 | 发生机制 | Agent 里的典型表现 | 治理动作 |
|---|---|---|---|
| 动作太多 | 每一步可选工具、参数和路径太多 | 模型在搜索、读文件、改代码、问用户之间摇摆 | 工具分层、任务阶段化、先粗后细 |
| 状态不可见 | 模型不知道外部系统真实状态 | 重复调用工具、误以为修改已生效、漏看错误 | 强制观察、状态摘要、步骤 trace |
| 目标模糊 | 没有明确完成条件或质量标准 | 不断优化回答、迟迟不停止,或过早宣布完成 | 验收标准、停止条件、用户确认点 |
| 约束隐藏 | 成本、权限、安全、时间限制没有进入规划 | 超预算、越权、调用危险工具、长链路失控 | 显式预算、权限 schema、安全闸门 |
| 反馈滞后 | 错误要到很后面才暴露 | 前面一步方向错,后面十步都在补错路 | 中间验证、检查点、短迭代 |
Demo 通常状态少、动作少、目标清晰、失败代价低;生产任务则有权限、成本、外部系统、多人协作、历史状态和不可逆副作用。规划问题一旦变大,单靠自然语言“想一想”就不够了。
| 策略 | 核心想法 | 适合场景 | 风险 |
|---|---|---|---|
| 贪心搜索 | 每一步选看起来最好的动作 | 短任务、局部信息足够、错误可重试 | 容易短视,陷入局部最优 |
| 宽度优先 | 先看同一层的多个选择 | 路径较短、需要比较候选方案 | 分支多时成本迅速上升 |
| 深度优先 | 沿一条路径走到底再回溯 | 探索性任务、分支较深 | 早期方向错会浪费大量步骤 |
| 启发式搜索 | 用评分函数或经验规则排序路径 | 代码修复、工具选择、检索策略 | 启发式错了会系统性偏航 |
| 树搜索 / 多路径采样 | 生成多个候选路径,用验证器筛选 | 数学、代码、可验证规划 | 需要强验证器,计算成本高 |
| 约束求解 | 先定义变量和约束,再求满足条件的方案 | 排程、资源分配、权限组合、格式生成 | 约束建模不完整会给出危险可行解 |
Agent 的规划能力不只来自模型本身,还来自你给它的搜索空间是否干净、约束是否明确、验证器是否可靠。
如果目标写得模糊、约束藏在人的脑子里,Agent 可能认真优化一个错误目标。这里和 目标函数、奖励错配与 Goodhart 是同一条底层逻辑:系统会优化被表达出来的目标,而不是你心里没说清的意图。
| 失败模式 | 底层原因 | 表面现象 | 修复方向 |
|---|---|---|---|
| 绕圈 | 状态更新不可见,缺少访问过的节点记录 | 重复搜索、重复读同一文件、反复调用同一工具 | 步骤 trace、已尝试路径、最大步数、终止条件 |
| 短视 | 贪心策略只看下一步收益 | 先改最明显的点,后面发现整体方案冲突 | 先规划后执行、阶段检查、候选方案比较 |
| 过度探索 | 目标不清或验证器太弱 | 不断查资料、不断拆解,迟迟不交付 | 完成定义、时间预算、必要信息阈值 |
| 误剪枝 | 启发式或早期判断错误 | 过早排除正确路径,执着于错误假设 | 保留备选、反证检查、定期重规划 |
| 约束违规 | 硬约束只写在 Prompt 里,没有系统 enforcement | 越权工具、危险动作、泄露敏感上下文 | 权限层、工具 schema、确认门、安全护栏 |
| 不可恢复 | 没有检查点、撤销或补偿动作 | 长任务中一步错,后续状态全乱 | 版本快照、checkpoint、回滚策略 |
| 相邻概念 | 连接点 | 区别 | 继续阅读 |
|---|---|---|---|
| 推理模型 | 调用时多想、多路径、多验证,本质上也在扩大搜索 | 推理模型偏“计算预算和验证”,本页偏“状态空间和规划结构” | 推理模型 / Test-time Compute |
| 强化学习 | 状态、动作、奖励、策略都来自同一套决策问题语言 | RL 强调从环境反馈中学习策略,本页强调一次任务里怎样规划路径 | 强化学习 / 环境反馈 |
| Tool Calling | 计划最终要落成可执行动作、参数和状态机 | Tool Calling 偏执行协议,本页偏动作选择和路径搜索 | Tool Calling / 执行协议 |
| Agent 系统 | Agent 是规划、工具、状态、记忆、治理的组合系统 | Agent 页讲全系统,本页讲规划层的底层机制 | Agent 系统 |
| 具身智能 | 机器人规划要面对物理状态、连续控制和环境反馈 | 具身场景的状态更难观测,动作副作用更真实 | 具身智能 / 世界模型 |
如果说推理模型页解释“为什么调用时多想会提升某些任务”,Tool Calling 页解释“动作怎样被安全执行”,Agent 页解释“系统怎样组合规划、工具、状态和治理”,那么本页解释中间那层规划底座:目标怎样被转成状态空间里的可验证行动路径。