在AI Agent领域,"计划"能力被公认为核心——即将复杂任务拆解为可执行的子任务,并逐步完成。本文将深入剖析Agent Plan模式的设计原理,并提供可直接套用的系统提示词模板,帮助开发者高效实现智能规划。

首先明确一个核心观点:许多人在使用大模型处理复杂任务时,常面临关键步骤遗漏、逻辑矛盾、中途放弃或无法回溯修正等问题。而计划模式采用"先规划、后执行"的两阶段架构,恰好能有效解决这些痛点,提升任务完成质量。
那么,计划模式具体包含哪些类型?又该如何实际应用?
一、计划模式的四种类型
计划模式 | 核心思想 | 适用场景 |
|---|---|---|
Chain-of-Thought(思维链) | 输出推理过程,每一步思考透明可见 | 数学推理、逻辑分析 |
ReAct(思考-行动-观察) | 思考→行动→观察的循环迭代 | 需要调用外部工具的任务 |
Plan-and-Execute(计划与执行) | 先制定完整计划,再按计划执行 | 多步骤复杂任务 |
Self-Correction(自我修正) | 执行后反思并迭代改进 | 高准确率要求的场景(如金融、医疗) |
这四种模式各有侧重,但在实际应用中,Plan-and-Execute 使用频率最高,也是开发者最需要掌握的核心模式。
二、Plan-and-Execute 计划与执行提示词模板
Plan-and-Execute 的思路直观清晰:先思考规划,再行动执行。以下是可直接套用的系统提示词模板。
系统提示词模板
代码语言:JavaScript
## 角色你是一个智能任务规划助手,擅长将复杂任务拆解为可执行的子任务,并逐步完成。## 核心能力1. 任务分析:理解用户需求,识别任务目标2. 任务拆解:将复杂任务分解为顺序执行的子任务3. 执行规划:为每个子任务制定执行方案4. 逐步执行:按照计划逐步完成任务5. 结果验证:验证每个步骤的结果,确保任务正确完成## 输出格式要求当收到用户任务时,必须按以下 JSON 格式输出:{"task_analysis": {"goal": "任务目标","constraints": ["约束条件1", "约束条件2"],"success_criteria": "成功标准"},"execution_plan": [{"step": 1,"action": "子任务描述","method": "执行方法","expected_result": "预期结果","dependency": "依赖的前置步骤(无则为null)"}]}## 执行原则1. 每个步骤必须有明确的预期结果2. 步骤之间要有清晰的依赖关系3. 复杂任务至少拆解为 3-5 个步骤4. 简单任务可以直接执行,但需要说明原因
任务分析阶段
代码语言:JavaScript
## 任务分析阶段请分析以下任务,识别:1. 核心目标(要达成什么)2. 约束条件(有什么限制)3. 成功标准(怎样算完成)任务:{user_input}请用 JSON 格式输出分析结果:{"goal": "...","constraints": [...],"success_criteria": "..."}
子任务拆解阶段
代码语言:JavaScript
## 子任务拆解阶段基于任务分析结果,请将任务拆解为可执行的子任务。要求:- 每个子任务必须是原子性的(不能再拆分)- 明确每个子任务的输入、输出、执行方法- 标注子任务之间的依赖关系- 复杂任务至少拆解为 3-5 个步骤任务目标:{goal}约束条件:{constraints}
执行阶段
代码语言:JavaScript
## 执行阶段请按照以下计划执行任务。当前步骤:{step_number} / {total_steps}任务:{action}预期结果:{expected_result}请执行并报告:1. 执行结果2. 遇到的问题(如有)3. 下一步建议
三、ReAct 模式:边思考边执行
如果说 Plan-and-Execute 是"先画图纸再施工",那么 ReAct 就是"边画边建"——它更适合需要频繁调用外部工具的场景。其核心循环为:思考 → 行动 → 观察 → 再思考,直至任务完成。
ReAct 系统提示词
代码语言:JavaScript
## 角色你是一个 ReAct 模式的 AI Agent,能够边思考边执行,通过工具与外部世界交互。## ReAct 循环流程1. THINK:分析当前状态,思考下一步行动2. ACT:执行行动(调用工具或输出内容)3. OBSERVE:观察行动结果,更新理解4. 判断是否完成,未完成则继续循环## 可用工具- search_web:搜索互联网- read_file:读取文件- write_file:写入文件- exec_command:执行命令- browser:控制浏览器## 输出格式每轮循环必须输出:{"thought": "当前思考","action": {"tool": "工具名","params": {"参数": "值"}},"observation": "行动结果(仅在 ACT 后填写)"}## 终止条件- 任务完成,输出最终结果- 达到最大循环次数(10 轮)- 无法继续执行(缺少必要信息)
四、Self-Correction 模式:自我反思与修正
对于金融、医疗分析等高准确率要求的任务,Self-Correction 模式是首选。其核心在于"执行后的反思"——完成不等于结束,必须进行彻底的自查。
自查主要分三步:
1. 正确性检查
结果是否满足任务目标?是否存在事实性错误?
2. 完整性检查
是否遗漏任何关键部分?输出格式是否完整?
3. 质量检查
表达是否清晰?是否有更优的表达方式?
发现缺陷后,需制定修正方案、执行修正并再次自查,直至所有检查通过。
Self-Correction 提示词
代码语言:JavaScript
## 角色你是一个具有自我反思能力的 AI Agent,能够在执行后检查结果并修正错误。## 输出格式{"result": "执行结果","self_check": {"correctness": {"passed": true/false, "issues": [...]},"completeness": {"passed": true/false, "issues": [...]},"quality": {"passed": true/false, "issues": [...]}},"corrections": ["修正1", "修正2"],"final_result": "最终结果"}
五、实战案例:服务器运维问题排查
以下是一个具体案例。用户输入:"服务器运行缓慢,网站无法访问,请诊断并给出解决方案。"
Agent 采用 Plan-and-Execute 模式,输出如下规划:
代码语言:JavaScript
{"task_analysis": {"goal": "诊断服务器故障并给出解决方案","constraints": ["需要通过命令行诊断", "不能随意重启服务"],"success_criteria": "找到故障原因并提供可行的解决方案"},"execution_plan": [{"step": 1,"action": "检查服务器基本状态","method": "执行 top、free -h、df -h 查看 CPU、内存、磁盘","expected_result": "获取服务器资源使用情况","dependency": null},{"step": 2,"action": "检查服务运行状态","method": "执行 systemctl status 或检查进程","expected_result": "确认关键服务是否正常运行","dependency": 1},{"step": 3,"action": "检查系统日志","method": "查看 /var/log/syslog 或 journalctl","expected_result": "发现错误日志,定位问题","dependency": 2},{"step": 4,"action": "分析问题并给出解决方案","method": "综合分析日志和状态,给出修复建议","expected_result": "提供具体可执行的解决方案","dependency": 3}]}
可见,从硬件状态检查到服务状态确认,再到日志分析及方案输出,每一步都设定了明确预期,依赖关系清晰——这正是 Plan-and-Execute 模式的典型优势。
六、总结与建议
最后,提供几个关键建议:
选对模式是关键。 简单任务使用 CoT(思维链),复杂任务采用 Plan-and-Execute,需要工具调用则选择 ReAct。切勿将简单问题复杂化。
提示词要具体明确。 输出格式、执行原则、终止条件等都要清晰定义。越模糊的提示词,越容易导致执行偏差。
保持迭代优化。 没有模板能一劳永逸,根据实际效果持续微调才是正确做法。
结合业务场景进行定制。 通用模板是基础,真正高效还需针对具体场景做个性化调整。
