Agentic Prompting:如何编写让 LLM 自主执行任务的 Prompt?
难度:中级 分类:Prompt Engineering
简短回答
Agentic Prompting 是为 LLM Agent 设计的专用 Prompt 工程——不同于标准 Prompt(一问一答),Agentic Prompt 需要让 LLM 理解它拥有哪些工具、如何规划多步任务、何时停止执行、以及如何处理异常。核心要素包括:(1) 角色与目标定义——明确 Agent 的身份和任务边界;(2) 工具描述——精确描述每个工具的功能、参数和使用场景;(3) 推理格式——定义 Thought/Action/Observation 的交互模式;(4) 约束与护栏——设置最大步数、禁止行为、降级策略;(5) 输出规范——定义最终输出的格式。与标准 Prompt 的关键区别:标准 Prompt 优化单次输出质量,Agentic Prompt 优化多步决策链的整体质量。
详细解析
标准 Prompt vs Agentic Prompt
代码块
Python
# 标准 Prompt:一问一答
standard_prompt = """
请分析以下代码的 bug:
{code}
"""
# Agentic Prompt:赋予自主执行能力
agentic_prompt = """
你是一个代码调试 Agent。你的目标是找到并修复代码中的 bug。
## 可用工具
- read_file(path): 读取源文件
- run_tests(path): 运行测试套件
- edit_file(path, old_text, new_text): 修改文件
- search_code(pattern): 搜索代码库
## 工作流程
1. 先阅读错误信息和相关代码
2. 分析可能的原因
3. 修改代码
4. 运行测试验证修复
5. 如果测试仍然失败,回到步骤 1
## 推理格式
Thought: [你的分析和计划]
Action: [工具名称]
Action Input: [工具参数]
Observation: [工具返回结果]
... (重复直到问题解决)
Final Answer: [修复总结]
## 约束
- 最多执行 15 步
- 不要修改测试文件
- 每次只修改一处,验证后再继续
"""
Agentic Prompt 的核心组件
代码块
Python
agentic_prompt_template = """
# 1. 角色定义(WHO)
你是 {agent_name},一个专注于 {domain} 的 AI Agent。
你的核心能力是 {capabilities}。
# 2. 目标定义(WHAT)
你的任务是:{task_description}
成功标准:{success_criteria}
# 3. 工具描述(WITH WHAT)
你可以使用以下工具:
### {tool_name_1}
- 功能:{description}
- 参数:{parameters}
- 返回:{return_type}
- 使用场景:{when_to_use}
工具描述的最佳实践
代码块
Python
# ❌ 差的工具描述
bad_tool_description = {
"name": "search",
"description": "搜索功能"
}
# ✓ 好的工具描述
good_tool_description = {
"name": "web_search",
"description": (
"搜索互联网获取最新信息。适用于需要实时数据、"
"最新新闻或模型训练数据中不包含的信息的场景。"
"不适合搜索代码库内部信息(请用 search_code)。"
ReAct 模式的 Prompt 设计
代码块
Python
高级 Agentic Prompt 技巧
代码块
Python
多 Agent 的 Prompt 设计
代码块
Python
常见误区 / 面试追问
误区:"Agentic Prompt 越详细越好" — 过度详细的指令可能限制 Agent 的灵活性。好的 Agentic Prompt 应该明确"做什么"和"边界在哪",但在"怎么做"上给予适当自由度。尤其对强模型,过多的微观指令反而降低效果。
误区:"标准 Prompt 技巧直接适用于 Agent" — Agent Prompt 有独特挑战:需要处理多轮交互、工具调用结果的不确定性、以及长上下文中的指令遗忘。标准 Prompt 优化的是单次生成,Agent Prompt 优化的是整个决策链。
追问:"如何减少 Agent 的'工具滥用'?" — 在 Prompt 中明确工具使用条件:"只在需要外部信息时使用搜索工具,能通过推理得到的答案不要搜索"。同时用 negative example 展示不该使用工具的场景。
追问:"Agentic Prompt 在不同模型间可移植吗?" — 不太可移植。不同模型对推理格式、工具调用方式的偏好仍有差异,但在 2025-2026 已大幅收敛——GPT-4/5 系列和 Claude 4.x 都已原生支持 tool use / structured outputs,输入格式不再强依赖 JSON 或 XML 包裹。早期"Claude 偏好 XML 标签"是 Claude 2/3 时代的经验法则,到 Claude 4.x native tool use 之后已经不重要——结构化交互直接走 tools 参数。最佳实践仍是针对每个目标模型跑评测验证,但不要再把"XML for Claude / JSON for GPT"当成定律。