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),仅供参考

相关新闻

HTML5语义标签实战指南:提升SEO、无障碍与可维护性

HTML5语义标签实战指南:提升SEO、无障碍与可维护性

1. 这不是“背标签”的笔记,而是我用语义标签重构了17个真实项目后写下的实战手记HTML5语义标签——这个词现在听上去有点老派,像课本里泛黄的章节标题。但如果你最近做过网页开发,尤其是接手过别人留下的老项目、参与过SEO优化、或者被产品经…

2026/11/7 6:21:38 阅读更多 →
大模型Flash标签的本质:营销话术还是真实优化?

大模型Flash标签的本质:营销话术还是真实优化?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 22:47:58 阅读更多 →
大麦抢票脚本技术拆解:从轮询到DOM监听的自动化实践

大麦抢票脚本技术拆解:从轮询到DOM监听的自动化实践

简介:这是一个包含大麦网抢票辅助脚本与仓库管理系统说明文档的ZIP资源包,面向有自动化抢票需求或对库存管理信息化感兴趣的开发者与运维人员。脚本通过自动填写购票信息、模拟点击抢票按钮、监听余票刷新等方式提升购票成功率,同时也需注意平…

2026/11/7 16:33:54 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/8 1:19:03 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/8 14:17:55 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/9 1:59:56 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/8 1:38:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/9 7:45:06 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/8 1:23:14 阅读更多 →

日新闻

周新闻

月新闻