从一个 while 循环开始,搭一个完整的 AI Agent(参考开源项目 learn claude code)

复制代码
# 从一个 while 循环开始,搭一个完整的 AI Agent(参考开源项目 learn claude code)

写在前面

这系列文章记录了我拆解 Claude Code 源码的过程。

起因很简单:用了几个月 Claude Code,越用越好奇------它到底是怎么做到"自己写代码、自己跑测试、自己修 bug"的?于是我学习开源项目learn claude code总结了一下自己的学习经验,拆成了 12 个最小可运行的 demo,从最简单的 while + tool_use 开始,一步步搭到多 Agent 团队协作。

全文地图

复制代码
s01  Agent Loop           while + tool_use,一切的起点
s02  多工具               dispatch map,加工具不改循环
s03  待办管理             模型自己列计划,3 轮不更新就催它
s04  子智能体             独立上下文,干完只返回摘要
s05  技能加载             system prompt 放名称,按需加载完整内容
s06  上下文压缩           三层压缩,换个方式"忘记"
s07  持久化任务           任务写磁盘,带依赖关系
s08  后台任务             子线程跑命令,主线程不卡住
s09  团队协作             队友 + JSONL 收件箱
s10  团队协议             request_id 关联的请求-响应握手
s11  自治                 队友自己看板抢活,身份重注入
s12  目录隔离             每个任务一个 git worktree

核心洞察

每一步解决一个问题,加一个机制,循环永远不变。

s01 的循环是这样的:

python 复制代码
while True:
    response = LLM(messages, tools)
    if response.stop_reason != "tool_use":
        break
    执行工具 → 结果追加到 messages

s12 的循环还是这样。变的是 tools 列表越来越长,messages 越来越聪明(会压缩、会注入、会重唤醒),但骨架没动过。

这就是 Agent 的本质:一个循环,加上模型能调用的工具。 工具决定了 Agent 能做什么,循环决定了 Agent 能做多久。

从 demo 到产品

这 12 个 demo 覆盖了 Claude Code 的核心机制:

demo Claude Code 对应
s01-s02 工具系统(Bash、Read、Write、Edit)
s03 TaskCreate / TaskUpdate
s04 Agent 子代理
s05 Skill 按需加载
s06 上下文压缩(auto-compact)
s07 任务持久化(.tasks/)
s08 后台任务(BackgroundManager)
s09-s10 多 Agent 通信
s11 自治 Agent + 身份重注入
s12 Worktree 隔离

当然,真实产品比 demo 复杂得多------错误处理、权限控制、安全沙箱、流式输出、UI 交互......但骨架是一样的。

怎么用这些 demo

每个 demo 都能独立运行:

bash 复制代码
cd agents
python s01_minimal_demo.py    # 最小 agent
python s02_minimal_demo.py    # 多工具
# ...
python full_demo.py           # 完整版

建议从 s01 开始,每个跑一遍,看一遍注释,理解了再往下走。跳步容易迷路。

技术栈

  • Python 3.10+
  • Anthropic SDK (anthropic)
  • 环境变量:ANTHROPIC_API_KEY、MODEL_ID、ANTHROPIC_BASE_URL(可选)

最后

写这些 demo 的过程中,我最大的感受是:Agent 不是一个模型,是一个系统。模型只是其中一环,真正让 Agent 工作起来的是周围的 harness------工具定义、上下文管理、任务调度、团队通信、目录隔离。

模型决定了 Agent 的上限,harness 决定了 Agent 能不能稳定地接近那个上限。

**如果感兴趣的话欢迎关注我该专栏("learn claude code")我会持续更新

相关推荐
BK贝壳1 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949653 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
张彦峰ZYF5 小时前
越过边界之前:Reward Seeker 实验如何改写智能体安全的时间逻辑
人工智能·ai agent·anthropic·智能体安全·reward seeker·“控制评价过程”泛化跨领域策略·envbom
拓恒技术5 小时前
无人机巡检AI算法的工程化落地:从需求到交付的5个核心环节
人工智能·算法·无人机
罗西的思考7 小时前
AI 时代的 “房谋杜断”:如何培养能力、品味与判断力
人工智能·算法·机器学习
在世修行7 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
字节跳动视频云技术团队8 小时前
720P 直升 8K,解密 2026 抖音美好奇妙夜巨幕超分黑科技
人工智能·音视频开发
2601_962885728 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI8 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
特别关注外国供应商8 小时前
Qualys TotalAI:AI 安全治理的四大支柱
ai·大模型安全·ai数据安全·qualys·ai安全治理·ai saas 治理·ai代码安全