ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

120行纯Python实现智能体循环:ai-engineering-from-scratch Agent Loop源码精读

2026/9/15 20:57:21 拓冰建站 浏览量
120行纯Python实现智能体循环:ai-engineering-from-scratch Agent Loop源码精读 120行纯Python实现智能体循环ai-engineering-from-scratch Agent Loop源码精读【免费下载链接】ai-engineering-from-scratchLearn it. Build it. Ship it for others.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch在 ai-engineering-from-scratch 这个开源项目中AI 智能体Agent最核心的控制流被压缩进了约 120 行纯 Python 代码一个消息缓冲区、一个工具注册表、一个回合预算外加停止条件——这就是 2026 年 Claude Code、Cursor、Devin 等主流智能体共用的 ReAct 循环。本文带你逐段精读这份源码帮助新手快速理解智能体循环Agent Loop到底是怎么跑的为什么所有智能体框架本质上都是它。为什么必须先懂 Agent Loop单独的 LLM 本质上是个自动补全器你问一句它回一段文本。它读不了文件、跑不了命令、查不了数据库。智能体的解法只有一个模式让模型在暂停 → 调工具 → 读结果 → 继续思考的循环里打转直到满足停止条件。课程原文docs/en.md总结了一个循环需要的五个要素缺一个就只是聊天机器人不是智能体消息缓冲区用户轮、思考轮、工具轮不断追加越滚越长工具注册表模型按名字调用工具输入参数、执行、返回结果字符串停止条件显式finish、无工具调用、到达最大回合数任选其一为主回合预算硬性上限防止死循环生产环境一次任务常跑 40–400 步观察格式化器工具报错也要变成模型能读的 observation 字符串而不是崩溃源码总览四个组件各司其职源码位于 code/main.py零第三方依赖、只用标准库分四个组件组件作用源码位置ToolCall/Turn数据模型一次工具调用、一个回合记录main.py#L20-L31ToolRegistry名字 → 可执行函数的分派器错误全部捕获为字符串main.py#L34-L53ToyLLM脚本化模型离线可确定性运行方便测试循环main.py#L78-L94AgentLoop真正的循环体while 回合预算 停止判断main.py#L97-L121 关键设计ToyLLM是假的但接口是真实的。把它换成任何提供商的 API 客户端控制流完全不变——这正是课程强调的生产形态。精读核心AgentLoop 是怎么转起来的循环本体只有 20 行出头main.py#L104-L121拆开看就是四步for step in range(self.max_turns): # ① 回合预算兜底 reply self.llm.respond(self.history) if reply[kind] finish: # ② 停止条件模型说完成 return reply[content] self.history.append(Turn(kindthought, ...)) # ③ 记录思考 observation self.tools.dispatch(call) # ④ 执行工具回填观察 self.history.append(Turn(kindaction, ...))观察 1工具错误永不抛出。ToolRegistry.dispatch里try/except捕获一切异常转成error: ...字符串喂回模型main.py#L44-L53。模型看见失败才有自我纠正的可能。观察 2预算耗尽也是正常出口。循环跑满max_turns时返回budget exhausted并写入历史而不是静默消失——这是可观测性的基础。观察 3历史只追加、不裁剪。history就是一个不断生长的消息缓冲区思考、动作、观察全留痕这就是完整的 ReAct trace。跑一遍离线演示只需一条命令仓库自带演示脚本main.py#L139-L173注册了calculator、kv_get、kv_set三个小工具让模型算一道 120 元 15% 税的账。在仓库根目录执行python3 phases/14-agent-engineering/01-the-agent-loop/code/main.py输出会打印完整 trace每一步的 thought、action、observation最后给出最终答案、所用回合数和工具清单。建议动手改改脚本里的任务或回合预算先预测效果再运行——这是 Phase 14 README 布置的课后动作。学完循环之后看哪里Agent Loop 是整个 Phase 14 的地基课程把后续能力都定义为围绕这个循环搭的脚手架。推荐两条延伸路线ReWOO / Plan-and-Execute02-rewoo-plan-and-execute/ —— 长程任务先规划再执行Reflexion 言语强化03-reflexion-verbal-rl/ —— 失败后让模型反思再重试可复用技能文件skill-agent-loop.md 把这套循环的正确写法沉淀成了可被任意智能体加载的技能内含五条硬性拒绝规则如无回合上限的循环直接否决总结收获点一句话记忆Agent Loop 什么思考 → 行动 → 观察循环到停止最少需要什么缓冲区 工具注册表 停止条件 预算 观察格式化框架差异在哪差异在循环之外状态检查点、消息传递、角色模板循环本身不变源码在哪phases/14-agent-engineering/01-the-agent-loop/code/main.py纯标准库、离线可跑读懂这约 120 行代码你就握住了所有智能体框架的共同祖先。再去看 LangGraph、CrewAI、Agents SDK 时你比较的只是循环外面套了什么而不再是循环本身有什么不同。【免费下载链接】ai-engineering-from-scratchLearn it. Build it. Ship it for others.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考