匠人学院 JR Academy学AI来匠人
匠人学院 JR Academy学AI来匠人

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-airwallex.png/image/layout/pay-alipay.png
EN

关于公司

关于我们元宇宙课堂新闻资讯匠人工作成为导师匠人导师联系我们匠人商店J3.Club

匠人资源

工作内推匠人活动1对1私教行业白皮书线上学习平台面试中心分享面试经验Internship会员中心

AI 工具

AI 工具箱考证匠 Cert Master求职匠 Job Hunter牛小匠 UniMate AI

AI 学习方向

全部学习方向AI EngineerContext EngineeringVibe CodingPrompt MasterAI BuilderAI 产品经理Python 入门

AI 应用提效

AI 办公提效AI 数据分析AI 财务AI 内容创作AI 视觉创作前端开发Hermes AgentOpenClaw 本地智能体

大学资源

墨尔本大学昆士兰大学新南威尔士大学悉尼大学莫那什大学阿德莱德大学RMITQUTUTS

少儿 AI 教育

Airbotix 少儿 AI 编程澳洲家长实用资料库NAPLAN 成绩单怎么看My School 学校数据指南悉尼私校学费 2026少儿编程课程与训练营

移民服务

澳洲移民技术移民189/190/491雇主担保482/186/494投资移民188/888英国移民美国移民加拿大移民

企业合作

P3职业孵化器Enterprise (EN)企业培训实习合作招聘合作申请合作

求职代理

岗位代投职位监控LinkedIn代运营LinkedIn人脉代加了解P3项目

匠人支持

FAQsTerms & ConditionsPrivacy PolicyCancellation & Refund PolicySite map

Top Categories

Web全栈班DevOps项目班数据工程全栈班数据分析项目班编程入门班Business Analyst实习算法集训营

求职就业

BA和产品经理实习数据科学实习数据分析实习Marketing实习简历修改面试指导导师指导VIP

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 2, 171 La Trobe St, Melbourne VIC 3000
四川省成都市武侯区桂溪街道天府大道中段500号D5东方希望天祥广场B座45A13号
Business Hub, 155 Waymouth St, Adelaide SA 5000

联系方式

hello@jiangren.com.au0421-672-555

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2026 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572

首页/资源中心/文章详情
JR Academy · Blog职业洞察

Prompt Engineering 实战指南 — Agentic Prompt 设计:让 AI 自主完成多步任务

2026 年 AI Agent 已经是主流开发范式。本章讲如何用 ReAct、Reflection、工具调用等模式设计 Prompt,让 AI 像真正的自动化 Agent 一样工作

发布日期2026-09-20
阅读时长4 分钟
作者

快速导航

  • 单次 Prompt 和 Agentic Prompt 的区别
  • ReAct 模式:思考 → 行动 → 观察
  • 在 System Prompt 里定义 ReAct 框架
  • 工具调用 Prompt:让 AI 知道何时用工具
  • 工具定义:用 Claude Tools API
  • Reflection 模式:让 AI 自我审查
  • 规划 Prompt:让 AI 先做计划再执行
  • 自我纠错 Prompt:处理工具失败和意外情况
  • 一个完整的 Agentic Agent 示例
  • Agentic Prompt 的三条核心原则

Agentic AI 架构

单次 Prompt 和 Agentic Prompt 的区别

之前几章讲的都是"单次 Prompt":你问一个问题,AI 给一个答案,结束。

Agentic Prompt 完全不同。你给 AI 一个目标,AI 自己规划步骤、调用工具、检查结果、纠正错误,直到完成任务。

单次模式:
用户 → [Prompt] → AI → 答案

Agentic 模式:
用户 → [目标] → AI → 规划 → 工具调用 → 观察结果 → 继续/调整 → ... → 最终答案

2026 年的主流 AI 开发框架(Claude Agents SDK、LangGraph、AutoGen)都是这个模式。理解 Agentic Prompt 设计,是从"会用 AI"到"会用 AI 做产品"的关键跨越。


ReAct 模式:思考 → 行动 → 观察

ReAct 是 Agentic Prompt 的基础架构,全称 Reasoning + Acting。

核心结构:

Thought: 我需要先了解当前情况,然后决定下一步
Action: 调用工具 [tool_name],参数是 [params]
Observation: 工具返回了 [result]
Thought: 根据结果,我需要...
Action: ...
... (循环直到完成)
Final Answer: [最终结果]

在 System Prompt 里定义 ReAct 框架

import anthropic

REACT_SYSTEM_PROMPT = """你是一个自主执行任务的 AI Agent。

完成任务时,严格按照以下格式思考和行动:

Thought: [分析当前情况,决定下一步]
Action: [工具名称]
Action Input: [工具参数,JSON 格式]
Observation: [工具返回的结果]

(重复以上循环,直到任务完成)

Final Answer: [最终答案,面向用户,简洁清晰]

可用工具:
- search_web(query: str) → 搜索网络,返回摘要
- read_file(path: str) → 读取文件内容
- write_file(path: str, content: str) → 写入文件
- run_code(code: str, lang: str) → 执行代码,返回输出

规则:
1. 每次只执行一个 Action
2. 没有足够信息时,先用工具收集信息,不要猜测
3. 遇到错误,分析原因,调整策略重试
4. 不确定的地方,优先做验证再继续
"""

client = anthropic.Anthropic()

def run_agent(user_task: str):
    messages = [{"role": "user", "content": user_task}]
    
    while True:
        response = client.messages.create(
            model="claude-opus-4-6",
            max_tokens=4096,
            system=REACT_SYSTEM_PROMPT,
            messages=messages,
        )
        
        text = response.content[0].text
        
        # 如果 AI 给出了最终答案,结束循环
        if "Final Answer:" in text:
            return text.split("Final Answer:")[-1].strip()
        
        # 否则解析 Action,执行工具,把结果加回上下文
        messages.append({"role": "assistant", "content": text})
        observation = execute_action(text)  # 你的工具执行逻辑
        messages.append({"role": "user", "content": f"Observation: {observation}"})

工具调用 Prompt:让 AI 知道何时用工具

工具调用(Function Calling / Tool Use)是 Agentic 系统的核心。写 Prompt 时,要让 AI 清楚知道:

  1. 有哪些工具
  2. 每个工具适合什么场景
  3. 工具用不了时怎么办

工具定义:用 Claude Tools API

tools = [
    {
        "name": "search_database",
        "description": """搜索产品数据库,返回匹配的产品列表。
        适用场景:用户询问产品信息、库存、价格时。
        不适用:用户问通用知识、公司政策、操作指南。""",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {
                    "type": "string",
                    "description": "搜索关键词,尽量具体(产品名/型号/类别)"
                },
                "max_results": {
                    "type": "integer",
                    "description": "返回结果数量,默认 5,最多 20",
                    "default": 5
                }
            },
            "required": ["query"]
        }
    },
    {
        "name": "get_order_status",
        "description": """查询订单状态。
        适用场景:用户提供了订单号,询问物流/配送状态。
        不适用:没有订单号时不要调用此工具,先向用户索取。""",
        "input_schema": {
            "type": "object",
            "properties": {
                "order_id": {
                    "type": "string",
                    "description": "订单号,格式:ORD-XXXXXXXX"
                }
            },
            "required": ["order_id"]
        }
    }
]

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "我的订单 ORD-20260415001 到哪了?"}]
)

# 处理工具调用
if response.stop_reason == "tool_use":
    tool_use = next(b for b in response.content if b.type == "tool_use")
    tool_result = execute_tool(tool_use.name, tool_use.input)
    
    # 把工具结果发回,让 AI 生成最终回复
    messages = [
        {"role": "user", "content": "我的订单 ORD-20260415001 到哪了?"},
        {"role": "assistant", "content": response.content},
        {
            "role": "user",
            "content": [{
                "type": "tool_result",
                "tool_use_id": tool_use.id,
                "content": str(tool_result)
            }]
        }
    ]
    final_response = client.messages.create(
        model="claude-opus-4-6",
        max_tokens=1024,
        tools=tools,
        messages=messages
    )

工具描述的关键:要写清楚不适用的场景。AI 不知道"这个工具什么时候不该用",你不说清楚它就会乱调用。


Reflection 模式:让 AI 自我审查

Reflection(反思)是让 AI 生成初稿 → 自我批评 → 改进输出的模式。研究表明,这个模式能把代码任务准确率从 80% 提升到 91%。

REFLECTION_SYSTEM_PROMPT = """你是一个严格的代码审查专家。

工作流程:
1. 首先写出初版代码(用 <draft> 标签包裹)
2. 然后以审查者身份批评自己的代码(用 <critique> 标签),检查:
   - 是否有 bug 或边界情况遗漏
   - 性能是否有明显问题
   - 安全性问题(SQL 注入、XSS 等)
   - 代码是否符合任务要求
3. 根据批评,写出改进版(用 <final> 标签包裹)

示例格式:
<draft>
# 初版代码...
</draft>

<critique>
问题1:没有处理空输入的情况
问题2:循环里有 N+1 查询问题
</critique>

<final>
# 修改后的代码...
</final>
"""

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=4096,
    system=REFLECTION_SYSTEM_PROMPT,
    messages=[{
        "role": "user",
        "content": "写一个 Python 函数,从 PostgreSQL 查询用户列表,支持分页和搜索"
    }]
)

# 提取最终版本
import re
final_code = re.search(r'<final>(.*?)</final>', response.content[0].text, re.DOTALL)

什么时候用 Reflection:

  • 生成的代码会直接上生产(质量要求高)
  • 复杂的分析报告(需要自我验证逻辑)
  • 写作任务(让 AI 自己检查是否偏题)

不适合 Reflection:简单查询、格式转换等任务,加 Reflection 只是浪费 token。


规划 Prompt:让 AI 先做计划再执行

对于复杂任务,让 AI 先输出计划,你审查后再执行,比直接让它闷头干好得多:

你是一个软件开发 Agent。

任务:[用户描述的需求]

第一步,先输出你的执行计划,格式如下:

## 执行计划

### 理解
[用一句话说明你理解这个任务的目标是什么]

### 步骤
1. [步骤描述] — 预期结果:[你期望得到什么]
2. [步骤描述] — 预期结果:[你期望得到什么]
...

### 风险
[可能遇到的问题,以及你的应对策略]

### 需要确认的问题
[如果有信息缺失,在这里列出,不要猜测]

---
输出计划后,等待用户确认再开始执行。

这个模式的价值:在 AI 开始做之前发现方向错误。尤其是在 AI Agent 有权限操作数据库、发邮件、提交代码的场景,先看计划再确认,避免事后无法回滚的错误。


自我纠错 Prompt:处理工具失败和意外情况

真实的 Agentic 系统一定会遇到工具调用失败、输出格式不对、API 超时等情况。在 System Prompt 里预先定义错误处理行为:

ERROR_HANDLING_PROMPT = """
遇到以下情况时,按对应策略处理:

**工具调用失败(网络错误/超时)**
→ 等待 2 秒后重试,最多重试 2 次
→ 两次都失败:告诉用户具体是什么工具失败了,建议手动操作

**工具返回了意外格式**
→ 不要假设数据结构,先用 Thought 记录你看到了什么
→ 尝试从返回值中提取你需要的信息
→ 如果确实无法解析,停下来向用户说明

**任务中途发现需要用户输入的信息**
→ 立即停下,明确列出你需要的信息,不要猜测或跳过
→ 格式:「继续任务需要以下信息:\n1. [信息名]:[用途]\n2. ...」

**发现任务可能有副作用(删除数据、发消息、扣钱等)**
→ 停下来描述你即将执行的操作和后果
→ 明确询问用户确认,不要自行判断"这应该是安全的"
"""

一个完整的 Agentic Agent 示例

把以上模式组合起来,一个实际可用的代码审查 Agent:

import anthropic
import subprocess

client = anthropic.Anthropic()

tools = [
    {
        "name": "read_file",
        "description": "读取代码文件内容",
        "input_schema": {
            "type": "object",
            "properties": {
                "path": {"type": "string", "description": "文件路径"}
            },
            "required": ["path"]
        }
    },
    {
        "name": "run_tests",
        "description": "运行测试套件,返回测试结果。只有当代码改动完成后才调用。",
        "input_schema": {
            "type": "object",
            "properties": {
                "test_command": {"type": "string", "description": "测试命令,如 pytest tests/"}
            },
            "required": ["test_command"]
        }
    }
]

AGENT_SYSTEM = """你是一个代码审查 Agent。

任务流程:
1. 读取用户指定的文件
2. 分析代码质量:安全性、性能、可维护性
3. 如果有测试,运行测试验证现有功能
4. 输出审查报告

审查报告格式:
## 总体评分:X/10

## 严重问题(必须修复)
- [问题] → [修复建议 + 代码示例]

## 警告(建议修复)
- [问题] → [建议]

## 亮点
- [代码做得好的地方]

遇到工具调用失败,最多重试 1 次,失败后在报告里注明"[工具名] 调用失败,以下分析基于静态审查"。
"""

def execute_tool(name: str, inputs: dict) -> str:
    if name == "read_file":
        try:
            with open(inputs["path"]) as f:
                return f.read()
        except FileNotFoundError:
            return f"错误:文件 {inputs['path']} 不存在"
    elif name == "run_tests":
        result = subprocess.run(
            inputs["test_command"].split(),
            capture_output=True, text=True, timeout=60
        )
        return result.stdout + result.stderr

def code_review_agent(file_path: str):
    messages = [{"role": "user", "content": f"请审查 {file_path} 这个文件"}]
    
    while True:
        response = client.messages.create(
            model="claude-opus-4-6",
            max_tokens=4096,
            system=AGENT_SYSTEM,
            tools=tools,
            messages=messages
        )
        
        if response.stop_reason == "end_turn":
            return response.content[0].text
        
        if response.stop_reason == "tool_use":
            messages.append({"role": "assistant", "content": response.content})
            tool_results = []
            for block in response.content:
                if block.type == "tool_use":
                    result = execute_tool(block.name, block.input)
                    tool_results.append({
                        "type": "tool_result",
                        "tool_use_id": block.id,
                        "content": result
                    })
            messages.append({"role": "user", "content": tool_results})

# 使用
report = code_review_agent("src/api/auth.py")
print(report)

Agentic Prompt 的三条核心原则

1. 定义好边界,不要定义每一步

好的 Agent System Prompt 告诉 AI 目标、工具、错误处理规则,但不把每一步都写死。写死了等于你在替 AI 思考,失去了 Agent 的意义。

2. 让 AI 在不确定时停下来问,而不是猜

# 在 System Prompt 里加上这段
"""
当你需要做一个可能不可逆的操作,或者任务信息不完整时:
停下来,用 <clarification> 标签列出你需要的信息,等用户回复。
不要猜测,不要跳过,不要假设。
"""

3. 给 AI 一个"放弃"的出口

真实环境里有些任务 AI 无法完成(权限不够、信息缺失、超出能力范围)。要在 Prompt 里允许 AI 说"我做不了":

如果你判断这个任务超出了你的能力范围,或者继续会有未知风险,
直接说:「这个任务我无法自主完成,原因是:[原因],建议:[替代方案]」
不要强行完成一个你没有把握的任务。

没有这个出口,AI 会在卡住时乱猜,产生你不可预知的结果。

作者
一键分享或复制链接
Lightman Wang
Reviewer: Lightman Wang

Founder of JR Academy

查看该作者的更多文章 →

相关学习资源

  • AI Engineer 学习路径
  • Prompt Master 学习路径
← 上一篇Prompt Engineering 实战指南 — 多模态 Prompting:让 AI 读图、分析文档、理解截图下一篇 →Prompt Engineering 实战指南 — Prompt 调试与评估:用数据衡量 Prompt 质量

相关文章推荐

太狠了太狠了😭 NVIDIA这个AI免费项目真的太狠了

2026-09-21

GitHub Copilot 实战指南 — 常见问题、定价与选型建议

2026-09-20

GitHub Copilot 实战指南 — 进阶玩法:Coding Agent、自定义指令与 MCP

2026-09-20

GitHub Copilot 实战指南 — 核心功能深度解析:补全、Chat 与 Agent Mode

2026-09-20

GitHub Copilot 实战指南 — 快速上手:注册免费版 + 第一次 AI 编程

2026-09-20

GitHub Copilot 实战指南 — GitHub Copilot 是什么:全球最大的 AI 编程助手

2026-09-20
查看全部文章 →
JR Academy
全球华人学习 AI 第一站
✓15000+ 学员
✓50+ 课程
✓AI 驱动学习平台
训练营免费资源AI学习职业辅导
精选推荐
AI 职业影响地图
测测你的职业风险等级,查看转型路径与学习方向
热门工具
AI & 数据训练营
系统化课程 + 真实项目实战,快速提升竞争力
热门课程
1v1 就业辅导
资深导师一对一指导,简历优化 + 面试准备
就业保障
企业内训定制
AI 技能培训方案,助力团队升级
企业服务
热门标签
Vibe CodingAI 编程CursorClaude求职攻略Prompt前端开发后端开发
订阅更新

获取最新 AI 学习资源、技术教程和求职攻略,直接送达邮箱。

我们尊重您的隐私,不会发送垃圾邮件