🦁Agent 开发入门|手写一个 Claude Code,机制很多就循环一个

notion image
大家好 ,我是想风!
如果想学习智能体开发,我一定推荐开源项目「Learn Claude Code」,一套 20 集的系列,从一个 while 循环讲到一整套 Claude Code。
智能体、多智能体是这一年最热的词。拆开看,都是同一个循环往上加东西。
这篇是系列的介绍入口文章:
先摊开 20 集的地图,再讲整个循环,最后分五段说每段在解决什么。
目录:
  1. 这个系列是什么
  1. 20 集地图
  1. 核心就一个循环
  1. 五段各在解决什么
  1. 怎么看这个系列
  1. 动手:先把 第一节s01 跑起来

一、这个系列是什么

notion image
简单说,把 Claude Code 拆成 20 个机制,一集只讲一个。
底子是开源项目 learn-claude-code。每一集配一份能跑的 Python 教学代码。
第 1 集 102 行,1 个工具。
第 15 集 786 行,14 个工具。
真正的 Claude Code,光主循环文件 query.ts 就有 1729 行。
一上来就读 1729 行,读不下去。从 102 行开始,一集加一点,就读得下去。
这就是整个系列的思路。

二、20 集地图

段落
集数
每集讲什么
一个智能体的骨架
s01 Agent Loop
一个 while 循环,就是全部
ㅤ
s02 工具
加一个工具,只加一行
ㅤ
s03 权限
工具执行前,先过一道门
ㅤ
s04 钩子
挂在循环上,不写进循环里
ㅤ
s05 计划
先列清单,再动手
让它干得久
s06 子智能体
任务太大,拆开各自干
ㅤ
s07 技能
用到哪个,加载哪个
ㅤ
s08 上下文压缩
装不下就得腾
ㅤ
s09 记忆
另开一层,不参与压缩
ㅤ
s10 系统提示
不是写死的,是拼出来的
ㅤ
s11 错误恢复
错误不是终点,是重试的起点
让它干得多
s12 任务系统
大目标拆成小任务,排好序,存下来
ㅤ
s13 后台任务
慢活丢后台,跑完自己回来通知
ㅤ
s14 定时调度
到点自己醒,不用你盯着
组队
s15 智能体团队
一个搞不定,组队来
ㅤ
s16 团队协议
队友之间要有约定
ㅤ
s17 自治的智能体
自己看板,自己认领
ㅤ
s18 工作树隔离
各干各的目录,互不干扰
外接与收尾
s19 MCP 工具
外接工具,走标准协议
ㅤ
s20 完整的一轮
机制很多,循环一个
最后一集那句,就是整个系列的结论:机制很多,循环一个。

三、核心就一个循环

notion image
没有循环之前,用 AI 写代码是这样的:
AI 说「帮我跑一下 npm test」。你复制命令,贴进终端,跑完,再把输出贴回去。
中间那个搬运工,是你。
s01 干的事,就是把你换成 20 行代码:
  1. 把对话发给模型
  1. 模型要用工具(stop_reason == "tool_use"),就执行,把结果塞回对话,回到第 1 步
  1. 不要工具了,退出
就这三步。
上面是示意,不是能直接跑的代码。
代码里几个词,第一次见先认一下:
词
大白话
messages
整段对话记录。一个列表,一问一答按顺序往里追加
工具(tool)
一份说明书(给模型看)+ 一个函数(给你的代码跑)
tool_use
模型回复里的一种内容,意思是「帮我执行这个工具,参数是这些」
stop_reason
模型这次为什么停下。等于 tool_use,就是在等你执行工具
API Key
调模型的钥匙,按用量扣钱。别发给别人,别传到 GitHub
Token
模型计费、算长度的单位。对话越长,每次发过去的 Token 越多
最小能跑的版本,见《最小版的智能体 Supervisor》——那篇用的就是这个循环,主管和手下共用一份。
后面每一集都长在这个循环上。加工具、加权限、加压缩、加团队——循环本身一行不改。

四、五段各在解决什么

notion image

骨架:s01 到 s05

一个智能体最少要什么。
循环让它能自己跑,工具让它能动手,权限决定哪些手不能动。
钩子是在循环外面挂东西,比如每次执行工具前记一笔日志,不用改循环本身。
计划是先让它列清单,再一条条做,免得做到一半忘了要干嘛。

干得久:s06 到 s11

活一长,对话就会塞满。
s06 子智能体,等于开一个新终端去追一件事,追完关掉,只把结论写进笔记。它有全新的对话记录,最多跑 30 轮,回传的只有最后一句结论——回传整个对话列表,等于没隔离。
技能是按需加载的说明书,用到才读进来。
压缩是装不下了,把旧对话缩成摘要。记忆另开一层,压缩时不动它。
系统提示不是一段写死的话,是每轮按情况拼出来的。
错误恢复是 API 报错、限流时不崩,等一下再试。

干得多:s12 到 s14

一个目标拆成很多小任务,排好先后,存到文件里,不会聊着聊着就丢了。
慢的活丢到后台,跑完自己回来报。
到点自己醒,不用人一直盯着。

组队:s15 到 s18

一个智能体搞不定,就招人。
s15 里有一个 Lead 和几个队友。队友是一直在的同事,不是 s06 那种干完就散的临时工。队友之间靠文件收件箱传话,发一条消息,就是往文件末尾追加一行。
只有 Lead 能招人,队友不能再往下招。
s16 定队友之间的说话规矩,s17 让队友自己去任务板领活,s18 给每人一个单独的目录,改代码不打架。

外接与收尾:s19 到 s20

MCP 是外接工具的标准插口,别人写好的工具,按协议插上就能用。
最后一集把前面所有机制串成完整的一轮,回到开头那句:机制很多,循环一个。

五、怎么看这个系列

notion image
建议的顺序:
  1. **s01 一定先看,把那份代码跑起来。**后面每一集都是在它上面加东西,这一集没跑通,后面全是空中楼阁。
  1. 每看一集,拿它的代码和上一集对比,看多了哪几行。
  1. 看到 s06 和 s15,可以停下来自己写一个最小的多智能体,比如《最小版的智能体 Supervisor》那种。
新手最容易犯的错,是跳过前五集直接看组队。
组队那几集的代码,七八百行里大半是前面的机制。前面没看,就分不清哪些是在组队、哪些是在压缩、哪些只是在挡权限。
第 1 步怎么跑,下一节一步步写了。

六、动手:先把 第一节 s01 跑起来

notion image
如果你真要学点智能体开发知识,建议还是手动去学习的,甚至手写代码,学习是可以的。 工作为了效率、产出是不建议手写了,根据你实际来就好了!
光看不跑,循环是记不住的。
下面的命令按 Mac 写,Windows 不一样的地方单独标了。

要准备什么

  • Python 3.10 以上。 终端里输 python3 --version 看一眼,低了就去 python.org 下载安装包。最新版的 anthropic SDK 要求 3.10。
  • git。 输 git --version,能出版本号就行。Mac 第一次输会弹窗让装命令行工具,点安装。
  • 一个 API Key。 官方的在 console.anthropic.com 申请。
用不了官方的也有办法。仓库里的 .env.example 列了几家兼容 Anthropic 格式的服务,国内能用的有 GLM、Kimi、DeepSeek、MiniMax,地址都写在里面。
那个文件自己也提醒了:兼容不等于行为完全一样。想要最稳,用官方的。

五步装好

第 3 步做完,提示符前面会多出 (.venv)。
这个独立环境的意思是:这次装的包只在这个目录里用,不弄乱电脑上别的 Python。
Windows 上,第 3 步后半句换成 .venv\Scripts\activate,第 5 步的 cp 换成 copy。

改配置:只动两行

Mac 上输 open -e .env,会用「文本编辑」打开它。
找到最上面这两行:
  • sk-ant-xxx 换成你的 Key
  • MODEL_ID 换成你的 Key 能用的模型
用国内的兼容服务,再往下找到对应那一段,把 # ANTHROPIC_BASE_URL=… 那行开头的 # 删掉。Key 填对方的,最上面的 MODEL_ID 改成对方的模型名。 再保存,关掉编辑器。
notion image

跑起来

先出现 s01: Agent Loop 和一行英文提示,然后是输入提示符 s01 >>。
输一句话回车。网站上给的例子是这个:
中文也行。
屏幕上会出现三种东西:
  • 黄色、以 `
notion image
大家好 ,我是想风!
如果想学习智能体开发,我一定推荐开源项目「Learn Claude Code」,一套 20 集的系列,从一个 while 循环讲到一整套 Claude Code。
智能体、多智能体是这一年最热的词。拆开看,都是同一个循环往上加东西。
这篇是系列的介绍入口文章:
先摊开 20 集的地图,再讲整个循环,最后分五段说每段在解决什么。
目录:
  1. 这个系列是什么
  1. 20 集地图
  1. 核心就一个循环
  1. 五段各在解决什么
  1. 怎么看这个系列
  1. 动手:先把 第一节s01 跑起来

一、这个系列是什么

notion image
简单说,把 Claude Code 拆成 20 个机制,一集只讲一个。
底子是开源项目 learn-claude-code。每一集配一份能跑的 Python 教学代码。
第 1 集 102 行,1 个工具。
第 15 集 786 行,14 个工具。
真正的 Claude Code,光主循环文件 query.ts 就有 1729 行。
一上来就读 1729 行,读不下去。从 102 行开始,一集加一点,就读得下去。
这就是整个系列的思路。

二、20 集地图

段落
集数
每集讲什么
一个智能体的骨架
s01 Agent Loop
一个 while 循环,就是全部
ㅤ
s02 工具
加一个工具,只加一行
ㅤ
s03 权限
工具执行前,先过一道门
ㅤ
s04 钩子
挂在循环上,不写进循环里
ㅤ
s05 计划
先列清单,再动手
让它干得久
s06 子智能体
任务太大,拆开各自干
ㅤ
s07 技能
用到哪个,加载哪个
ㅤ
s08 上下文压缩
装不下就得腾
ㅤ
s09 记忆
另开一层,不参与压缩
ㅤ
s10 系统提示
不是写死的,是拼出来的
ㅤ
s11 错误恢复
错误不是终点,是重试的起点
让它干得多
s12 任务系统
大目标拆成小任务,排好序,存下来
ㅤ
s13 后台任务
慢活丢后台,跑完自己回来通知
ㅤ
s14 定时调度
到点自己醒,不用你盯着
组队
s15 智能体团队
一个搞不定,组队来
ㅤ
s16 团队协议
队友之间要有约定
ㅤ
s17 自治的智能体
自己看板,自己认领
ㅤ
s18 工作树隔离
各干各的目录,互不干扰
外接与收尾
s19 MCP 工具
外接工具,走标准协议
ㅤ
s20 完整的一轮
机制很多,循环一个
最后一集那句,就是整个系列的结论:机制很多,循环一个。

三、核心就一个循环

notion image
没有循环之前,用 AI 写代码是这样的:
AI 说「帮我跑一下 npm test」。你复制命令,贴进终端,跑完,再把输出贴回去。
中间那个搬运工,是你。
s01 干的事,就是把你换成 20 行代码:
  1. 把对话发给模型
  1. 模型要用工具(stop_reason == "tool_use"),就执行,把结果塞回对话,回到第 1 步
  1. 不要工具了,退出
就这三步。
上面是示意,不是能直接跑的代码。
代码里几个词,第一次见先认一下:
词
大白话
messages
整段对话记录。一个列表,一问一答按顺序往里追加
工具(tool)
一份说明书(给模型看)+ 一个函数(给你的代码跑)
tool_use
模型回复里的一种内容,意思是「帮我执行这个工具,参数是这些」
stop_reason
模型这次为什么停下。等于 tool_use,就是在等你执行工具
API Key
调模型的钥匙,按用量扣钱。别发给别人,别传到 GitHub
Token
模型计费、算长度的单位。对话越长,每次发过去的 Token 越多
最小能跑的版本,见《最小版的智能体 Supervisor》——那篇用的就是这个循环,主管和手下共用一份。
后面每一集都长在这个循环上。加工具、加权限、加压缩、加团队——循环本身一行不改。

四、五段各在解决什么

notion image

骨架:s01 到 s05

一个智能体最少要什么。
循环让它能自己跑,工具让它能动手,权限决定哪些手不能动。
钩子是在循环外面挂东西,比如每次执行工具前记一笔日志,不用改循环本身。
计划是先让它列清单,再一条条做,免得做到一半忘了要干嘛。

干得久:s06 到 s11

活一长,对话就会塞满。
s06 子智能体,等于开一个新终端去追一件事,追完关掉,只把结论写进笔记。它有全新的对话记录,最多跑 30 轮,回传的只有最后一句结论——回传整个对话列表,等于没隔离。
技能是按需加载的说明书,用到才读进来。
压缩是装不下了,把旧对话缩成摘要。记忆另开一层,压缩时不动它。
系统提示不是一段写死的话,是每轮按情况拼出来的。
错误恢复是 API 报错、限流时不崩,等一下再试。

干得多:s12 到 s14

一个目标拆成很多小任务,排好先后,存到文件里,不会聊着聊着就丢了。
慢的活丢到后台,跑完自己回来报。
到点自己醒,不用人一直盯着。

组队:s15 到 s18

一个智能体搞不定,就招人。
s15 里有一个 Lead 和几个队友。队友是一直在的同事,不是 s06 那种干完就散的临时工。队友之间靠文件收件箱传话,发一条消息,就是往文件末尾追加一行。
只有 Lead 能招人,队友不能再往下招。
s16 定队友之间的说话规矩,s17 让队友自己去任务板领活,s18 给每人一个单独的目录,改代码不打架。

外接与收尾:s19 到 s20

MCP 是外接工具的标准插口,别人写好的工具,按协议插上就能用。
最后一集把前面所有机制串成完整的一轮,回到开头那句:机制很多,循环一个。

五、怎么看这个系列

notion image
建议的顺序:
  1. **s01 一定先看,把那份代码跑起来。**后面每一集都是在它上面加东西,这一集没跑通,后面全是空中楼阁。
  1. 每看一集,拿它的代码和上一集对比,看多了哪几行。
  1. 看到 s06 和 s15,可以停下来自己写一个最小的多智能体,比如《最小版的智能体 Supervisor》那种。
新手最容易犯的错,是跳过前五集直接看组队。
组队那几集的代码,七八百行里大半是前面的机制。前面没看,就分不清哪些是在组队、哪些是在压缩、哪些只是在挡权限。
第 1 步怎么跑,下一节一步步写了。

六、动手:先把 第一节 s01 跑起来

notion image
如果你真要学点智能体开发知识,建议还是手动去学习的,甚至手写代码,学习是可以的。 工作为了效率、产出是不建议手写了,根据你实际来就好了!
光看不跑,循环是记不住的。
下面的命令按 Mac 写,Windows 不一样的地方单独标了。

要准备什么

  • Python 3.10 以上。 终端里输 python3 --version 看一眼,低了就去 python.org 下载安装包。最新版的 anthropic SDK 要求 3.10。
  • git。 输 git --version,能出版本号就行。Mac 第一次输会弹窗让装命令行工具,点安装。
  • 一个 API Key。 官方的在 console.anthropic.com 申请。
用不了官方的也有办法。仓库里的 .env.example 列了几家兼容 Anthropic 格式的服务,国内能用的有 GLM、Kimi、DeepSeek、MiniMax,地址都写在里面。
那个文件自己也提醒了:兼容不等于行为完全一样。想要最稳,用官方的。

五步装好

第 3 步做完,提示符前面会多出 (.venv)。
这个独立环境的意思是:这次装的包只在这个目录里用,不弄乱电脑上别的 Python。
Windows 上,第 3 步后半句换成 .venv\Scripts\activate,第 5 步的 cp 换成 copy。

改配置:只动两行

Mac 上输 open -e .env,会用「文本编辑」打开它。
找到最上面这两行:
  • sk-ant-xxx 换成你的 Key
  • MODEL_ID 换成你的 Key 能用的模型
用国内的兼容服务,再往下找到对应那一段,把 # ANTHROPIC_BASE_URL=… 那行开头的 # 删掉。Key 填对方的,最上面的 MODEL_ID 改成对方的模型名。 再保存,关掉编辑器。
notion image

跑起来

先出现 s01: Agent Loop 和一行英文提示,然后是输入提示符 s01 >>。
输一句话回车。网站上给的例子是这个:
中文也行。
屏幕上会出现三种东西:
  • 黄色、以 开头的行——模型要跑的命令
  • 紧跟着的几行——命令的输出,只显示前 200 个字符
  • 最后一段普通文字——模型干完给你的话
这就是第三节那个循环在转。
模型说要跑命令 → 代码去跑 → 结果塞回对话 → 模型再看。转到它不再要命令,就停了。
输 q 回车退出。在终端里 ls,hello.py 会真的在目录里,python hello.py 能跑。
再试一句 What is the current git branch?,能看到它自己去敲 git 命令。
它是真的在你电脑上执行命令。
代码里只拦了 sudo、rm -rf / 这几条,别让它去动重要目录。

跑不起来,先查这四处

zsh: command not found: python
Mac 上默认只有 python3。激活了独立环境才有 python,或者直接用 python3。
ModuleNotFoundError: No module named 'anthropic'
依赖没装上,或者装进了别的 Python。看提示符前有没有 (.venv),没有就重新 source .venv/bin/activate,再装一次。
KeyError: 'MODEL_ID'
没读到 .env,或者里面没有 MODEL_ID。看第 5 步那个 cp 跑没跑。
Error code: 401,后面带 authentication_error
Key 不对。要么复制少了字符,要么 Key 和 ANTHROPIC_BASE_URL 不是同一家的。

和网站对不上的两处

网站上说 s01 是 102 行。截至 2026 年 10 月,仓库里的 s01_agent_loop/code.py 是 151 行。
多出来的是开头一大段说明注释、终端输入的兼容处理、Windows 的判断。循环本身还是那几行。
仓库 README 现在写的是「新版 17 章主线」,后面几章的编号和网站的 20 集对不上。
s01 是同一个起点,先跑它不受影响。

最后

Learn Claude Code 一共20 集,核心就是一个循环。学完你基本具备开发一个真实业务场景的智能体的上手条件。真实的开发能力还需要你的更多的生产实践经验!
先把那 102 行跑起来,剩下的每一集,就都是在回答一个问题:这个循环还缺什么。
下一篇:[[Agent 开发入门|最小版的智能体 Supervisor]],用 s01、s06、s15 三集的原理,写一个只派活、不干活的主管。
参考来源:
learn-claude-code 中文版(各集行数、工具数和机制描述出自这里) https://www.shoptofly.com/lcc/zh/
GitHub 仓库(第六节的安装命令、.env 配置和屏幕输出出自仓库 README 与 s01 代码) https://github.com/shareAI-lab/learn-claude-code

我是想风@xaiwind,一个关注出海与 AI、AIGC 的创作者。
本文基于AI辅助与个人实践融合创作,如果文章对你有帮助,欢迎点赞、收藏、关注,
本人文章持续修正、欢迎联系或者评论区见,每天进步一点,我们终会到达目的地!
notion image
上一篇
Agent 开发入门|最小版的智能体 Supervisor
下一篇
AI Agent自动化网盘拉新副业,闲鱼MCP、资源站一网打尽
Loading...
文章列表
一份关于编程AI与跨境出海的文档
大话奇妙AI
开源建站部署
日常开发记录
优选独立站
shopify 主题
shopify 入门
出海基础设施
AI 工具技巧
AI 视频剪辑