资讯动态

AI Agent构建秘籍:从ReAct到CodeAct,手把手教你打造智能体!

发布时间:2026/8/13 8:06:12 来源:尧图企业网站定制
本文深入探讨了AI Agent的构建体系从理解AI Agent的基本概念出发详细解析了ReAct、Plan-and-Execute、Reflection和CodeAct等设计模式。文章强调了Agent的核心机制是思考-行动循环并通过工具调用、代码执行和上下文管理等关键组成部分阐述了如何实现一个完整的AI Agent。此外本文还提供了一个极简的Agent实现示例涵盖了Agent Loop、Tools实现、Tools注册、System Prompt和CLI REPL入口等模块为读者提供了从理论到实践的全面指导。现在构建一个 AI Agent可以简单的使用一些 Code Agent SDK比如Anthropic Claude Code但想着作为一个技术人还是要钻进去理解一些原理和概念所以开始梳理一下完整的 AI Agent 构建体系。理解 AI AgentAI智能体是使用AI来实现目标并代表用户完成任务的软件系统。其表现出了推理、规划和记忆能力并且具有一定的自主性能够自主学习、适应和做出决定。学习基础理论方面先理解现阶段一个完整闭环的 AI Agent 的行为设计i模式ReAct模式Plan-and-Execute模式Reflection模式CodeAct模式再理解一个完整闭环的 AI Agent 工程视角Agent LLM Call Tools Call Context Engineering解析下三个组成部分组成部分本质工程实现LLM Call推理引擎API调用LiteLLM统一封装Tools Call行动能力Function Call / MCP / 代码执行Context Engineering智能核心提示词设计、记忆管理、上下文组织设计模式ReAct模式ReAct 是很多 Agent 设计的起点。它最重要的一点是把一件事说清楚了模型不应该只负责给答案它还应该决定自己下一步做什么。所以任务不再是一次性生成而是一个循环思考当前状态决定下一步动作执行动作观察结果再进入下一轮思考核心思想将推理(Reasoning)和行动(Acting)结合弥补CoT缺少外部反馈的缺陷。工作流程┌─────────────────────────────────────┐ │ ReAct Loop │ │ │ │ Thought → Action → Observation │ │ ↓ ↓ ↓ │ │ 推理 执行工具 观察结果 │ │ │ │ [循环迭代直到任务完成] │ └─────────────────────────────────────┘每次迭代的三步骤ReasoningLLM分析当前状态生成内部推理链决定下一步行动Acting根据推理结果执行具体操作调用工具、执行代码等Observation观察执行结果反馈用于下一轮思考Plan-and-Execute模式有些任务太复杂不适合每一步都临时决策。这时候就需要先做一个更高层的规划再把执行拆开。这个模式适合长链路的软件交付任务需要多步协调的操作流程任务结构相对稳定、可预判的场景核心思想先制定完整计划再按步骤执行工作流程Planning → Task1 → Task2 → Task3 → Summary 结构化工作流适合任务关系明确的长期任务对比ReAct特性ReActPlan-and-Execute决策方式边做边想先规划后执行灵活性高低适用场景动态任务结构化任务动态调整支持较弱Reflection模式让 Agent 能自我修正如果说 ReAct 解决的是“怎么动”Plan-and-Execute 解决的是“怎么规划”那 Reflection 解决的就是“怎么纠错”。流程初始输出 → 自我评估 → 生成反馈 → 修正输出 → [迭代]CodeAct模式CodeAct 是 ReAct 模式的进化。核心思想通过生成可执行Python代码统一行动空间优势代码是解决问题的普适方法Agent可以按需生成解决方案不局限于预定义工具2025年演进Anthropic提出将MCP服务器作为代码APIAgent编写代码与MCP交互。Agent 设计与实现原理核心机制思考-行动循环Agent的本质是一个持续运转的认知循环。理解这个循环就理解了Agent的全部。用一个类比来解释想象你在组装一台复杂的机器但手边只有一本说明书和一堆零件。你会怎么做看说明书理解当前要做什么找到需要的零件动手组装观察组装结果发现问题就调整继续下一步直到完成Agent的运转方式完全类似——只不过说明书变成了提示词和上下文信息零件变成了工具和代码执行能力观察结果变成了工具返回的输出。循环的四个关键阶段┌──────────────────────────────────────────────────────────┐ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 理解 │ ──→ │ 决策 │ ──→ │ 执行 │ │ │ │ 上下文 │ │ 下一步 │ │ 工具 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ ↑ │ │ │ │ ↓ │ │ │ ┌──────────┐ │ │ │ │ 整合 │ │ │ └──────────────────────────── │ 结果 │ │ │ └──────────┘ │ │ │ └──────────────────────────────────────────────────────────┘阶段一理解上下文LLM接收所有已有信息系统提示词、用户请求、历史对话、工具执行结果。这些信息构成了Agent的记忆——它当前知道的一切。阶段二决策下一步基于理解LLM判断当前状态决定接下来要做什么如果任务已完成直接返回结果如果需要更多信息调用查询工具如果需要处理数据执行代码如果遇到问题调整策略阶段三执行工具根据决策调用相应的工具读文件、写文件、执行命令、运行代码。工具执行后返回结果。阶段四整合结果将工具结果写入上下文成为下一次理解的新信息。循环继续。上下文的生命周期上下文是循环中唯一持续存在、不断更新的元素初始状态 │ │ [系统提示词] [用户请求] │ ▼ ┌─────────────────────────────────────┐ │ 上下文容器 │ │ │ │ 第1轮加入工具执行结果 #1 │ │ 第2轮加入工具执行结果 #2 │ │ 第3轮加入工具执行结果 #3 │ │ ... │ │ │ 最终完整对话历史 所有工具结果 │ └─────────────────────────────────────┘上下文持续累积让Agent记住之前的每一步。这也是为什么长任务需要控制迭代次数——上下文会越来越大消耗更多资源。终止条件什么时候停止循环循环不会永远运行有三种终止方式任务完成LLM判断问题已解决不再调用工具直接返回文本答案达到上限设置最大迭代次数如20轮防止无限循环错误中断工具执行失败或API调用异常实践写一个极简Agent理解的 Agent 实现主要有5个模块实现一个Agent Loop 循环驱动核心Tools实现定义四个基础工具函数Tools注册工具Schema定义System Prompt完成初始化提示词还需要一个入口CLI入口作为用户交互界面第一部分Agent LoopMAX_TURNS 20 def agent_loop(user_message: str, messages: list, client: OpenAI) - str: Agent Loopwhile循环驱动LLM推理与工具调用 messages.append({role: user, content: user_message}) tool_schemas [t[schema] for t in TOOLS.values()] for turn in range(1, MAX_TURNS 1): --- LLM推理 --- response client.chat.completions.create( modeldeepseek-chat, messagesmessages, toolstool_schemas, ) assistant_msg response.choices[0].message messages.append(assistant_msg.model_dump()) --- 判断是否完成 --- if not assistant_msg.tool_calls: return assistant_msg.content or --- 执行工具调用 --- for tool_call in assistant_msg.tool_calls: name tool_call.function.name args json.loads(tool_call.function.arguments) tool_entry TOOLS.get(name) result tool_entry[function](**args) if tool_entry else f[error] unknown tool: {name} messages.append({ role: tool, tool_call_id: tool_call.id, content: result, }) return [agent] reached maximum turns, stopping.要点messages 列表是上下文容器持续累积所有对话和工具结果MAX_TURNS 防止无限循环安全上限tool_calls 为空表示任务完成退出循环第二部分Tools实现def shell_exec(command: str) - str: 执行shell命令 result subprocess.run(command, shellTrue, capture_outputTrue, textTrue, timeout30) output result.stdout (f\\\\n[stderr]\\\\n{result.stderr} if result.stderr else ) return output.strip() or (no output) def file_read(path: str) - str: 读取文件内容 with open(path, r, encodingutf-8) as f: return f.read() def file_write(path: str, content: str) - str: 写入文件 os.makedirs(os.path.dirname(path) or ., exist_okTrue) with open(path, w, encodingutf-8) as f: f.write(content) return fOK — wrote {len(content)} chars to {path} def python_exec(code: str) - str: 执行Python代码 with tempfile.NamedTemporaryFile(modew, suffix.py, deleteFalse) as tmp: tmp.write(code) tmp_path tmp.name result subprocess.run([sys.executable, tmp_path], capture_outputTrue, textTrue, timeout30) os.unlink(tmp_path) return result.stdout.strip() or (no output)这四个工具覆盖了Agent与外部世界交互的核心能力工具能力边界shell_exec操作系统层面文件管理、进程控制、网络请求file_read信息获取读取代码、配置、日志file_write信息输出保存结果、创建文件python_exec数据处理计算、分析、转换有了这四个工具Agent就能完成绝大多数编程任务——因为它可以读取现有代码、编写新代码、执行代码验证结果。第三部分Tools注册TOOLS { shell_exec: { function: shell_exec, schema: { type: function, function: { name: shell_exec, description: Execute a shell command and return output., parameters: {type: object, properties: {command: {type: string}}, required: [command]}, }, }, }, file_read: { function: file_read, schema: { type: function, function: { name: file_read, description: Read file contents., parameters: {type: object, properties: {path: {type: string}}, required: [path]}, }, }, }, file_write: { function: file_write, schema: { type: function, function: { name: file_write, description: Write content to file., parameters: {type: object, properties: {path: {type: string}, content: {type: string}}, required: [path, content]}, }, }, }, python_exec: { function: python_exec, schema: { type: function, function: { name: python_exec, description: Execute Python code., parameters: {type: object, properties: {code: {type: string}}, required: [code]}, }, }, }, }Schema的作用Schema告诉LLM每个工具的使用说明书——工具名称、功能描述、参数要求。LLM根据这些信息决定何时调用、如何传参。Schema遵循OpenAI Function Calling标准格式所有主流LLM都支持这一格式。第四部分System PromptSYSTEM_PROMPT You are a helpful AI assistant with access to the following tools: 1. shell_exec — run shell commands 2. file_read — read file contents 3. file_write — write content to a file 4. python_exec — execute Python code Think step by step. Use tools when needed. When complete, respond directly.System Prompt的作用这是Agent的第一条指令告诉它身份定位AI助手可用能力四个工具行动准则按步骤思考完成任务后直接回答System Prompt在每次LLM调用时都会携带是上下文的固定组成部分。第五部分CLI REPL入口def main(): client OpenAI(api_keyos.environ[DEEPSEEK_API_KEY], base_url) messages [{role: system, content: SYSTEM_PROMPT}] print(Agent ready. Type exit to quit, clear to reset.\\\\n) while True: user_input input(You ).strip() if user_input.lower() exit: break if user_input.lower() clear: messages [{role: system, content: SYSTEM_PROMPT}] continue reply agent_loop(user_input, messages, client) print(f\\\\nAgent {reply}\\\\n)用户交互设计exit 退出会话clear 清空上下文重新开始支持多轮对话上下文持续累积运行方式export DEEPSEEK_API_KEYsk-xxxxx python agent.py好至此就是一个简单的 Agent 框架闭环。总结Agent框架设计核心公式Agent框架设计 Agent Loop Context EngineeringAgent Loop本质是思考-行动循环理解→决策→执行→整合持续迭代直到任务完成。上下文工程决定Agent智能程度——精心组织上下文信息让LLM每次决策有足够好的原材料。从极简版本入手理解核心逻辑再逐步叠加功能后面再深入学习下去。说真的这两年看着身边一个个搞Java、C、前端、数据、架构的开始卷大模型挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis稳稳当当过日子。结果GPT、DeepSeek火了之后整条线上的人都开始有点慌了大家都在想“我是不是要学大模型不然这饭碗还能保多久”我先给出最直接的答案一定要把现有的技术和大模型结合起来而不是抛弃你们现有技术掌握AI能力的Java工程师比纯Java岗要吃香的多。即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇这绝非空谈。数据说话2025年的最后一个月脉脉高聘发布了《2025年度人才迁徙报告》披露了2025年前10个月的招聘市场现状。AI领域的人才需求呈现出极为迫切的“井喷”态势2025年前10个月新发AI岗位量同比增长543%9月单月同比增幅超11倍。同时在薪资方面AI领域也显著领先。其中月薪排名前20的高薪岗位平均月薪均超过6万元而这些席位大部分被AI研发岗占据。与此相对应市场为AI人才支付了显著的溢价算法工程师中专攻AIGC方向的岗位平均薪资较普通算法工程师高出近18%产品经理岗位中AI方向的产品经理薪资也领先约20%。当你意识到“技术AI”是个人突围的最佳路径时整个就业市场的数据也印证了同一个事实AI大模型正成为高薪机会的最大源头。最后我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我整理出这套 AI 大模型突围资料包【允许白嫖】✅从入门到精通的全套视频教程✅AI大模型学习路线图0基础到项目实战仅需90天✅大模型书籍与技术文档PDF✅各大厂大模型面试题目详解✅640套AI大模型报告合集✅大模型入门实战训练这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】①从入门到精通的全套视频教程包含提示词工程、RAG、Agent等技术点② AI大模型学习路线图0基础到项目实战仅需90天全过程AI大模型学习路线③学习电子书籍和技术文档市面上的大模型书籍确实太多了这些是我精选出来的④各大厂大模型面试题目详解⑤640套AI大模型报告合集⑥大模型入门实战训练获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价