三四个月前,有人跟我说"AI 编程助手不是什么神秘的东西, 300 行代码就能搭一个"。
我当时觉得他在吹牛。说实话,这类话听多了——什么 AI 要取代人类了,什么五分钟搞定一个 APP——听得多了就免疫了,觉得又是一个不靠谱的人在画大饼。
Cursor 、 Cline 、 Windsurf——这些名字你随便挑一个,背后都像是藏着一整支工程团队。 300 行?写个 Hello World 都不止吧。
后来我真去翻了一下,发现……这人没骗我。
一个叫 Geoff Huntley 的开发者,在 GitHub 上开源了一个 workshop,就叫「 how-to-build-a-coding-agent 」。 5,555 颗星,已经在线下两个技术大会上跑过。它的核心逻辑,确实不到 300 行 Go 代码。
GitHub 地址:github.com/ghuntley/how-to-build-a-coding-agent
所以, AI 编程助手到底怎么工作的?
先别急着找代码。我们来想想——如果你要让一个 AI 帮你写代码,它需要什么能力?
至少得能读你项目里的文件吧?能列一下目录结构吧?能跑个命令看看结果吧?能改文件吧?能在代码库里搜点什么吧?
对,就这些。
没有魔法。没有秘密 sauce 。就是一个循环:你说话 → AI 回应 → AI 说要调用某个工具 → 你的程序去执行这个工具 → 结果塞回去 → AI 继续回应。
Geoff 在博客里原话是这么说的:"300 行代码,跑在一个循环里,往里面不断扔 token 。就这么简单。"
这个循环,就是编程助手的核心。
说人话就是:每轮对话都是一个闭环——你的输入进模型,模型决定要不要调工具,调完工具结果返回,模型再接着推理。就这么来回转,转到它觉得够了为止。
没在开玩笑。
从聊天机器人到编程助手,六步走
但说实话,我一开始对这个 workshop 是抱着吐槽的心态去的——又一个教你怎么用 AI 的教程,烦不烦啊。
结果越看越离谱。它不是那种你刷一遍就忘的教程,是真让你动手。
这个 workshop 的设计很聪明——不是给你一个最终产品让你望而却步,而是从零开始,一步一步往上叠能力。
第一步:纯聊天。 就是一个最基础的 chatbot ,连上 Anthropic 的 Claude API ,你问它答。看起来好像没什么用,但它搭好了整个架构的骨架:接收输入 → 调 API → 展示回复 → 循环。
第二步:加文件读取。 这一步开始变得有意思了。你跟 Claude 说"读一下 fizzbuzz.js",它真的会去打开那个文件、读内容、然后跟你聊里面的代码。它不是凭空回答了——它手里多了一个工具,名字叫 read_file。
第三步:加目录浏览。 不只是读文件了,它还能看你这文件夹里有什么。你说"看看这个目录下有哪些文件",它列出来。像一个真正的同事刚开始熟悉项目时做的第一件事。
第四步:加命令行。 这一段我特别想划重点。它可以直接在你的终端里跑命令了。git status、ls、cat——安全的 shell 命令。这意味着它不再是个"看得见的助手",而是一个能真的动手的助手。
第五步:加文件编辑。 读、列、跑都有了——这步加的是"写"的能力。它可以直接修改文件、创建新文件。你让它"在这个文件顶部加个 Python 的 Hello World",它照做。
第六步:加代码搜索。 最后加上基于 ripgrep 的代码搜索能力。你让它"找出所有 Go 文件里的函数定义",它几秒钟给你答案。
每一步步进大概就几十行代码。加一个工具,注册一个 schema ,写一段执行函数。
就像搭积木。
它跟 Cursor 、 Cline 这些有什么不同?
这可能是你会问的第一个问题。
Cursor 是一个产品——它封装好了,有 UI 、有插件生态、有付费方案。你安装,登录,就能用。
这个 workshop 是教学——它故意不做封装,把每一行让你看清看透。
类比的话: Cursor 是给你一栋精装修的房子,你搬进去住就行。这个 workshop 是教你怎么砌砖——到最后你可能不会真的用它来替代 Cursor ,但你会理解 Cursor 那堵墙里面到底是什么结构的。
这种理解在 AI 时代反而越来越稀缺了。大家都在追求"更快的工具"、"更智能的助手",但没人停下来问一句——这些工具到底是怎么听懂我说话的?
关于"300 行"这个数字,说句实话
我必须坦诚一点。我自己试了之后发现,如果真的全部代码加起来,加上错误处理、配置文件、样板文件,可能不止 300 行。更接近 500-600 行。
但 Geoff 说的 300 行,是指核心逻辑。
那 300 行才是真正重要的东西——那个 event loop 、工具注册机制、 API 调用——这些东西才是理解 AI 编程助手的关键。剩下的都是脚手架,搭完可以拆的那种。
这个数字本身就是一个很好的设计决策。如果他说"这个项目 3000 行代码",你可能就直接划走了。但"300 行"给了你一个心理锚点——好像也不是很难,试试呗。
而当你真的试了,你会发现——确实不难。
所以呢?
不知道怎么结尾。
十年前,学编程是学语法、学算法、学数据结构。现在这些当然还是基础——信息学奥赛考的还是那些东西。但在基础之上,多了一整层理解 AI 如何工作的能力。
不是那种"我会用 ChatGPT"的浅层理解——是能画出一个循环图、能说清楚 tool use 的 event loop 是怎么转的、能自己在终端里跑一个 agent 出来的理解。
如果你对编程和AI感兴趣,花一个下午把这个 workshop 走一遍——我觉得挺值的。