
搭建一个完整的 Agent就像是组装一个机器人。在动手写代码之前我们首先需要理解它的核心大脑和四肢架构。一、 AI Agent 的核心四要素根据目前主流的学术与工业界共识如 AutoGPT、LangChain 的设计理念一个标准的 Agent 架构主要由以下四个部分组成大脑 (LLM / 大语言模型)Agent 的核心。负责理解输入、生成文本、推理逻辑以及做出决策。规划 (Planning)面对复杂任务时Agent 需要拆解目标。例如CoT (思维链)允许 Agent 一步步思考ReAct 模式则让 Agent 交替进行“思考Reason”与“行动Act”。记忆 (Memory)短期记忆当前会话的上下文历史Context。长期记忆借助向量数据库如 Vector DB让 Agent 能长久记住你的喜好、历史知识库或外部文档。工具 (Tools / 动作)Agent 的手脚。LLM 本身无法联网或操作本地文件但通过 API、Python 解释器、计算器等工具Agent 可以完成“检索网页”、“修改表格”、“发送邮件”等具体动作。二、 独立搭建的两种路线在实现阶段你可以根据自己的编程基础选择不同的路线路线适合人群核心工具/平台优点缺点低代码/零代码运营、产品、小白独立开发者Coze (扣子), Dify, Flowise界面可视化拖拽即用生态丰富定制化上限低核心逻辑受平台限制纯代码实现程序员、希望深度定制的开发者Python, LangChain, LlamaIndex自由度极高可深度融合业务逻辑门槛较高需要处理大量的 Prompt 微调三、 实战用 Python 手写一个最简 Agent为了让你看清 Agent 的底层逻辑我们不使用复杂的框架直接用Python OpenAI API来实现一个具备“计算器工具”和“ReAct思考-行动”能力的极简 Agent。步骤 1定义环境与工具首先我们给 Agent 提供一个计算器工具。Pythonimport os import openai # 初始化客户端请替换为你的 API Key 或代理地址 client openai.OpenAI(api_keyos.environ.get(OPENAI_API_KEY)) # 定义一个可以让 Agent 调用的工具 def calculate(expression: str) - str: 执行数学表达式的计算器工具 try: # 注意实际生产中避免直接使用 eval此处仅作演示 return str(eval(expression)) except Exception as e: return f计算错误: {str(e)}步骤 2设计系统提示词Prompt 注入灵魂让大模型理解它是一个 Agent并且懂得如何使用工具。这是最核心的一步PythonSYSTEM_PROMPT 你是一个具备计算工具的智能 Agent。 你必须按照以下格式进行思考和行动直到得出最终答案 思考我需要做什么 行动选择使用工具 calculate[数学表达式] 结果工具返回的结果 ...这个过程可以重复 最终答案给出用户的最终结论。 当前可用工具 - calculate[表达式]: 只能处理基础数学计算。 示例 用户123乘以456是多少 思考用户需要计算 123 * 456。 行动calculate[123 * 456] 结果56088 最终答案123乘以456的结果是56088。 步骤 3编写 Agent 核心循环ReAct LoopAgent 的精髓在于循环接收用户输入 - 思考 - 发现需要工具 - 调用工具 - 拿到结果继续思考 - 输出最终答案。Pythondef run_agent(user_question: str): print(f 用户提问: {user_question}\n -*30) # 初始化对话历史 messages [ {role: system, content: SYSTEM_PROMPT}, {role: user, content: user_question} ] # 允许 Agent 最多思考/行动 5 次防止死循环 for i in range(5): response client.chat.completions.create( modelgpt-4o, # 或其他支持强推理的模型 messagesmessages, temperature0 ) ai_reply response.choices[0].message.content print(ai_reply) # 打印 Agent 的思考过程 # 将 AI 的思考也加入历史中 messages.append({role: assistant, content: ai_reply}) # 检查 AI 是否触发了工具调用 if 行动calculate[ in ai_reply: # 提取括号内的表达式 start ai_reply.find(行动calculate[) len(行动calculate[) end ai_reply.find(], start) expression ai_reply[start:end] # 执行工具 tool_result calculate(expression) print(f️ Tool 运行结果: {tool_result}\n -*30) # 把工具结果喂回给大模型 messages.append({role: user, content: f结果{tool_result}}) elif 最终答案 in ai_reply: break # 测试运行 run_agent(如果我有 250 个苹果平均分给 5 个人每个人拿到的苹果再乘以 12 是多少)四、 进阶与避坑指南当你成功跑通上述代码后你就已经迈出了第一步。如果想打造一个商用或更复杂的 Agent你需要进阶解决以下问题防止 Agent “死循环”或“胡言乱语”开源小模型如 7B/13B很难稳定输出特定格式。建议初期使用GPT-4o、Claude 3.5 Sonnet或DeepSeek-R1等推理能力极强的模型作为 Agent 的大脑。结构化输出 (Function Calling)上面代码中我们用的是字符串匹配行动calculate[这在生产环境中极易出错。建议使用 OpenAI 的tools/function calling参数让模型直接返回标准 JSON 格式。记忆的持久化当对话变长Token 开销会巨大。你需要引入ChatMessageHistory机制或者使用滑动窗口只保留最近几轮的对话并将重要的历史信息总结后存入向量数据库如 Chroma、Pinecone。五、 结语独立搭建 Agent 的迷人之处在于你不再是简单地向 AI 提问而是成了“造物主”在为它定制规则和能力。建议你的路线是先在 Coze/Dify 平台连线跑通逻辑找到痛点然后用 Python LangChain 亲手重构它。当你看到自己写的代码能够驱动 AI 自动联网、自动查表并解决问题时那种成就感将无与伦比。