一天介绍一个项目|从零手搓一个AGENT

今天介绍一个最近在 GitHub Trending 上爆火的开源项目——learn-claude-code,目前已经快 3 万星了。

项目地址:https://github.com/shareAI-lab/learn-claude-code

这个项目是干嘛的?

一句话概括:从零开始,手把手教你搓一个类似 Claude Code 的 AI Agent。

用过 Claude Code 的朋友应该都好奇过:它到底是怎么做到"你说一句话,它就能帮你改代码、跑命令、操作文件"的?这个项目就是来揭秘的。

作者的核心观点很直接——"Bash is all you need"。意思是,Agent 没有你想的那么复杂,本质就是一个循环:调 LLM → 拿到工具调用 → 执行 → 把结果喂回去 → 再调 LLM……如此反复。

用项目原话说:代理就是模型,代码只是支撑框架(harness)。

12 节课,从入门到能打

这个项目最牛的地方是它把学习路径拆成了 12 节循序渐进的课,每节课对应一个 Python 文件,跑起来就能看到效果。

第一阶段:搞懂基本循环(s01-s02)

这是最核心的部分。s01 教你写一个最简单的 Agent 循环——就是一个 while True,不断调 LLM,如果返回的是工具调用就执行,如果是普通文本就输出给用户。

s02 加入工具分发机制,把不同工具的处理函数注册到一个字典里,循环只管查字典调函数,加新工具完全不用改核心逻辑。

一句话总结:一个 while True 循环就是 Agent 的心脏。

第二阶段:让 Agent 不再瞎跑(s03-s06)

光有循环还不够,Agent 容易"跑偏"。这个阶段加了四个关键能力:

  • s03 规划系统:让 Agent 先想好怎么做,再动手,不会东一榔头西一棒槌
  • s04 子 Agent:复杂任务拆成小任务,每个子任务有独立的对话上下文,互不干扰
  • s05 技能系统:把常用操作封装成"技能文件",Agent 可以按需加载
  • s06 上下文压缩:聊久了上下文会爆,这节课教你用三层压缩策略(摘要层 + 核心记忆层 + 实时工作层)解决这个问题

第三阶段:跨会话记忆(s07-s08)

  • s07 任务持久化:把任务存到文件系统里,关掉程序再打开,之前的任务还在
  • s08 后台任务:用多线程让 Agent 可以同时干好几件事

第四阶段:团队作战(s09-s12)

这是进阶内容,教你搞多 Agent 协作:

  • s09-s10:多个 Agent 之间怎么通信(用 JSONL 邮箱协议),怎么自动认领任务
  • s11-s12:工作树隔离,每个 Agent 在独立目录里干活,互不干扰,最后合并

核心代码长啥样?

说了这么多,Agent 的核心骨架到底多简单?看这段代码就够了:

def agent_loop(messages):
    while True:
        response = client.messages.create(
            model=MODEL, system=SYSTEM,
            messages=messages, tools=TOOLS,
        )
        messages.append({"role": "assistant", "content": response.content})
        if response.stop_reason != "tool_use":
            return
        results = []
        for block in response.content:
            if block.type == "tool_use":
                output = TOOL_HANDLERS[block.name](**block.input)
                results.append({
                    "type": "tool_result",
                    "tool_use_id": block.id,
                    "content": output,
                })
        messages.append({"role": "user", "content": results})

就这么几行。调 LLM,拿到工具调用就执行,拿到文本就返回。这就是 Agent 的全部骨架。

怎么开始学?

动手只需要 5 步:

git clone https://github.com/shareAI-lab/learn-claude-code
cd learn-claude-code
pip install -r requirements.txt
cp .env.example .env  # 填入你的 ANTHROPIC_API_KEY
python agents/s01_agent_loop.py  # 从第一课开始跑

从 s01 开始,一节一节往后学,每节课都是一个独立可运行的 Python 文件。

另外项目还提供了一个 Next.js 做的可视化学习平台,可以在浏览器里看架构图和步进调试:

cd web && npm install && npm run dev
# 打开 http://localhost:3000

适合谁?

  • 想搞明白 Agent 到底是怎么回事的开发者
  • 用过 Claude Code 但好奇它内部原理的人
  • 想自己从零搓一个 Agent 的实践派
  • 刚入门 AI 应用开发,想找个靠谱教程的同学

最后

别光收藏,clone 下来跑一遍 s01,你会发现 Agent 真没那么神秘。

#AI项目实战##AI求职实录#
全部评论

相关推荐

有很多问题,求大佬们解答,谢谢大佬们:不知道现在该怎么投实习,该怎么准备内心很纠结学校课程和实习到底怎么选择, 自己也不想课程学业这边出问题, 是不是只能投暑期实习,具体时间该怎么安排前端面试也需要准备算法么, 自己的算法能力很薄弱, 面试题需要准备到什么程度?没有ai项目经验的话,我该如何去补充,如何去找好的ai项目
smile丶snow:1.简历尽量一页,比如教育经历那里,全日制,计算机学院这些可以去掉没啥用好浪费空间。 熟悉三件套就没必要写了吧。js基本上是这样写 * JavaScript核心:深入理解 JS 运行机制(事件循环 Event Loop、微任务/宏任务),熟练掌握 Promise/Async 异步编程 模型。 熟悉可以改成熟练掌握。组件库写一个ant感觉就行,多写了浪费空间。 旅游项目是不是jonas的natours啊,我之前简历也有这个。我之前是这样写的 全栈思维: 熟悉 Node.js/Express 后端架构,掌握 MongoDB 数据库设计与聚合查询 工程化我觉得还是少些吧,不写就问的少,如果你真的了解的话可以写。 1.实习的话推荐大厂官网和aoob上面投,我自己有写一个校招网站的小网站可以直达~github主页上面有,顺便求个关注( 2.大三下一般课程比较少了吧,如果学校比较严的话可以多沉淀一会,如果不太严可以请dai课然后去实习,尽量找个近一些的就行。暑期实习不是暑假才实习哦,基本是上3月底4月初发offer就可以过去了,然后大概暑假的时候走转正流程答辩。 3.大厂算法题+js手写体。hot100+常见的比如数组转树,Promise.all,deepClone,之类 js手写都不难其实。算法看自己能力吧,我其实算法能力也不行。 4.自己平时没有用AI Coding吗?自己想一下怎么让AI帮你更好的写代码~比如Skill的诞生,OpenSpec的诞生,不都是我们想让AI更好帮我们写代码吗。
我的实习日记
点赞 评论 收藏
分享
评论
7
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务