真实面经题目 · 原创解析
Agent 的计划模式是什么?如何把用户目标拆成步骤、工具调用和可恢复执行状态?
这题考 Agent 运行机制:计划模式不是让模型多想一会儿,而是把开放目标转成可执行、可观测、可重试、可恢复的任务状态机或工作流。
真实面经题目 · 原创解析
这题考 Agent 运行机制:计划模式不是让模型多想一会儿,而是把开放目标转成可执行、可观测、可重试、可恢复的任务状态机或工作流。
我理解 Agent 的计划模式,是在执行复杂目标前,先把用户目标拆成结构化步骤,并在执行过程中维护计划状态、工具调用和恢复点。它和普通一次性问答不同:普通 LLM 直接生成答案,计划模式会先识别目标、约束、资源和完成标准,然后生成任务列表或任务图,例如收集信息、调用检索、执行 API、校验结果、汇总输出。执行时 Agent 不是盲目连续调用工具,而是按计划选择工具,拿到 observation 后更新状态:这一步完成了吗,是否需要重试,是否发现新约束,是否要改计划。工程上通常需要一个状态模型,记录任务 id、步骤状态、输入输出、工具参数、错误、重试次数、检查点和人工确认点。这样即使中途 API 超时、模型输出参数错、权限不足或会话中断,也能从最近的步骤恢复,而不是从头再来。计划模式的价值是提升复杂任务的可控性、可解释性和可靠性,但代价是延迟、状态管理和错误恢复复杂度更高。适合多步骤、强依赖、需要工具和验证的任务;简单问答则不一定要开启。
计划模式是 Agent 面对复杂目标时使用的一种执行控制方式:先把目标拆成步骤,再按步骤调用工具、观察结果、更新状态和必要时重规划。它不等同于暴露模型的思考过程,也不是简单让模型输出一段计划文本;关键是计划要能驱动后续执行,并能被系统记录、校验和恢复。
一个可执行计划通常包含目标、约束、步骤、依赖、所需工具、输入输出、完成条件、失败处理和人工确认点。简单任务可以是线性 checklist,复杂任务可以是 DAG 或状态机。结构化的好处是系统可以知道当前执行到哪一步、下一步需要什么工具、哪些步骤可跳过、哪些失败需要回滚。
计划模式的核心循环可以概括为 plan、act、observe、update、replan。Agent 先生成初始计划,按步骤调用工具,得到工具返回或环境观察,再判断步骤是否完成。如果返回信息改变了原假设,例如检索不到证据、API 参数缺失、用户权限不足,就要更新计划,而不是继续执行过期步骤。
每个工具调用都应该服务于某个计划步骤,并带有明确输入、输出和验收条件。例如检索工具输出候选证据,API 工具输出业务对象或错误码,代码执行工具输出运行结果。模型生成的工具参数要经过 schema 校验和权限检查,工具结果也要被规范化后写回状态,避免后续步骤依赖一段不可解析的自然语言。
计划模式要可靠,必须持久化关键状态:用户目标、计划版本、步骤状态、工具调用记录、输入输出摘要、错误原因、重试次数、检查点和最终产物。这样会话中断、服务重启或某个工具失败后,系统能判断哪些步骤已完成、哪些可以重试、哪些需要人工介入,而不是让模型重新猜一遍。
计划模式容易出现过度拆解、循环调用、目标漂移和工具滥用,所以需要边界控制。常见护栏包括最大步骤数、最大重试次数、超时预算、工具 allowlist、敏感动作审批、计划变更审计、结果校验和终止条件。尤其是涉及写操作或外部 API 时,计划步骤不能直接绕过权限和确认。
计划模式适合长任务、多工具、多依赖、需要验证和可解释过程的场景,例如自动排查问题、数据分析、复杂检索、代码修改、业务流程办理。它的代价是更高延迟、更复杂状态存储、更难调试以及计划错误可能放大后续错误。简单 FAQ、短文本生成或单次检索任务,直接回答或轻量工具调用可能更合适。
ReAct 更强调推理和动作交替,计划模式更强调先形成可执行步骤和状态管理。实际系统可以结合两者:先规划整体步骤,再在每一步内用 observation 驱动下一次工具调用或局部重规划。
通常是混合。开放任务的拆解可以由模型生成,但计划结构、工具权限、状态流转、重试和审批应由宿主系统约束。完全交给模型会不稳定,完全规则化又难覆盖开放目标。
当工具返回缺少必要信息、出现错误、发现新约束、用户目标变化、步骤完成条件无法满足或连续重试失败时,需要重新规划。重规划应保留已验证的事实和已完成步骤,而不是全盘重来。
设置最大步骤数、最大重试次数、时间和成本预算;对重复工具调用做去重;要求每轮状态必须产生新信息;连续无进展时触发停止、降级或人工确认。
可以看任务完成率、平均步骤数、工具调用成功率、重试率、恢复成功率、超时率、人工介入率、成本延迟和用户满意度。复杂任务还要看计划可解释性和失败后能否定位。