从零写一个 AI Agent:用 Python 搞懂智能体原理

从零写一个 AI Agent:用 Python 搞懂智能体原理
很多人第一次接触 Agent是从 LangChain、CrewAI、AutoGen 开始。框架文档里 Chain、Tool、Memory、Planner 一堆抽象很容易让人觉得Agent 很复杂必须先学框架。其实把框架剥开底层逻辑就三件事LLM 负责思考工具负责行动循环负责持续推进。即Agent LLM Tools Loop。理解这个公式比背任何框架 API 都重要。框架会变机制不会。下面用最小 Python Agent 把循环跑起来。Agent 到底是什么普通 LLM 调用是一次性的用户提问模型回答结束。Agent 多了”行动循环”LLM 读取用户问题和当前状态LLM 判断是否需要工具如果需要程序执行工具并把结果返回给 LLMLLM 基于新结果继续判断直到模型认为任务完成输出最终答案。这个模式常称 ReActReasoning Acting。先推理再行动再观察结果继续推理。图1Agent 循环流程图——用户输入进入 LLMLLM 要么直接回答要么调用工具工具结果回传 LLM 继续思考直到输出最终答案什么时候需要 Agent 任务需要”多步判断 外部动作”时如查资料、算数、调接口、读文件。只做改写、摘要、分类普通 LLM 调用就够。用 Python 写一个最小 Agent示例用 Anthropic Claude API 的tool_use。OpenAI function calling 同一套思想定义工具 → 模型选工具 → 程序执行 → 结果回传。先安装依赖通过环境变量设置 Key不要写进代码pip install anthropic export ANTHROPIC_API_KEY你的_API_Key2.1 定义工具工具不是函数本身而是给模型看的能力说明书工具叫什么、能做什么、需要哪些参数。import re import anthropic client anthropic.Anthropic() tools [{ name: calculator, description: 计算简单数学表达式只支持数字、加减乘除和括号。, input_schema: { type: object, properties: { expression: { type: string, description: 数学表达式例如 123 * 456 789 } }, required: [expression] } }]工具描述越清楚模型越容易选对。这里只放一个计算器方便看懂完整链路。2.2 执行工具模型不会真的执行代码。它只提出”我要调 calculator参数是 x”。真正执行的是你的 Python 程序。def run_tool(name: str, args: dict) - str: if name ! calculator: return未知工具 expr args[expression] ifnot re.fullmatch(r[0-9/-*/(). ], expr): return表达式包含不允许的字符 try: return str(eval(expr, {__builtins__: {}}, {})) except Exception as e: returnf计算失败{e}这里用白名单限制字符。生产环境更建议用专门数学解析库别让模型生成内容直接进入高权限执行环境。2.3 写 Agent 循环核心就是一个for循环请求模型 → 检查工具调用 → 执行工具 → 结果塞回历史 → 再请求模型。def agent(user_input: str, max_steps: int 5) - str: messages [{role: user, content: user_input}] for _ in range(max_steps): response client.messages.create( modelclaude-opus-4-8, max_tokens1024, toolstools, messagesmessages, ) messages.append({role: assistant, content: response.content}) if response.stop_reason ! tool_use: return.join( block.text for block in response.content if block.type text ) tool_results [] for block in response.content: if block.type tool_use: result run_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}) return达到最大循环次数Agent 停止。 print(agent(123 乘以 456 再加上 789 等于多少))典型运行用户提问 → LLM 判断需要计算器 → 生成工具调用calculator({expression:123*456789})→ Python 执行得56877→ 结果回传 LLM → LLM 输出自然语言答案。图2Agent 运行过程——LLM 思考需要计算器→ 调用 calculator → 工具返回 56787 → LLM 组织最终回答注意图中示例数值用于展示流程如果你换表达式结果以程序实际计算为准。什么时候用这个最小版 学原理、验证工具调用、做内部小工具。还不适合直接上生产——缺权限控制、日志、重试、上下文管理和人工确认。拆开看Agent 的 4 个关键机制机制一工具定义工具定义就是 LLM 的“工具菜单”。模型根据name、description和参数 schema 判断能不能用、该不该用、怎么传参。坑点 工具描述太泛会导致误选。例如“处理数据”不如“计算数学表达式并返回结果”。工具越多描述越要互斥。什么时候用 只要模型需要访问外部世界——数据库、文件、接口、搜索、计算——就要定义工具。机制二模型决策Agent 不是你硬编码“先调 A再调 B”。LLM 会根据问题和工具列表自己决定下一步。这是 Agent 相比普通脚本最大的区别。什么时候用 路径不固定时用 Agent路径固定时用普通代码编排更稳定、更便宜。机制三工具执行LLM 只负责“提出动作”程序负责“执行动作”。这个边界很重要工具权限、参数校验、失败处理都应该在你控制的代码里完成。什么时候用 永远如此。不要让模型直接执行任意 shell、SQL 或高权限 API。机制四循环终止stop_reason tool_use表示模型还想行动否则说明它准备回答。除此之外还要加max_steps防止无限循环。什么时候用 所有 Agent 都必须有循环上限。没有上限成本和风险都会失控。从最小 Agent 到实用 Agent最小版本能说明原理但实用 Agent 至少要补三层能力。图3从最简 Agent 到实用 Agent 的演进——补循环上限、补错误回传、补上下文管理第一循环上限。用max_steps控制最多执行几轮避免模型在“搜索—总结—再搜索”里打转。第二错误回传。工具失败时不要吞错误要把错误作为tool_result返回给模型。模型看见“参数不合法”或“接口超时”才有机会换策略。第三上下文管理。每轮工具调用都会让消息历史变长。短任务可以直接保留全部历史长任务要做截断、摘要或外部记忆否则 token 会爆。什么时候升级 当 Agent 需要跑很多步、接多个工具、给多人使用或者会触碰文件/数据库/生产系统时就不能停留在教学版。要不要用框架方案适合场景优点坑点原生 API 循环学原理、简单工具透明、好调试基建要自己补LangChain快速原型、RAG生态大抽象多、版本变化快CrewAI多角色协作任务组织清晰简单任务容易过度设计AutoGen多 Agent 对话适合研究协作模式调试链路长建议路线先写原生 Agent搞懂 LLM Tool Loop再学框架。 否则框架出错时你分不清是模型没选对工具、schema 写错、工具执行失败还是框架封装层的问题。继续练习如果你想继续深入做三个小练习加一个read_file工具让 Agent 能读本地文件加一个search工具让 Agent 能查外部资料把messages保存到文件里实现最简单的记忆。做完这三个练习你就真正理解了 Agent 的基本机制模型负责决策工具负责行动循环负责推进边界负责安全。参考资料Anthropic Tool Use 文档OpenAI Function CallingReAct 论文Building Effective AgentsAnthropic 博客LangChain Agents这里给大家精心整理了一份全面的AI大模型学习资源包括AI大模型全套学习路线图从入门到实战、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等资料免费分享扫码免费领取全部内容1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 2026行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。7. 资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容