OpenAI 送了我半年 ChatGPT Pro,理由是我在维护开源
今天邮箱里跳出来一封信,标题是:“You can just build things, enjoy 6 months on us”。 发件人是 OpenAI 的 Codex 团队。点开第一行就是大写的 “You’re in.",然后跟着一句:“Thanks for maintaining open source projects.”
今天邮箱里跳出来一封信,标题是:“You can just build things, enjoy 6 months on us”。 发件人是 OpenAI 的 Codex 团队。点开第一行就是大写的 “You’re in.",然后跟着一句:“Thanks for maintaining open source projects.”
12 篇文章,我们从 Think-Act-Observe 循环一路拆解到 50 万行的工程深渊。现在站在系列的终点,回头看整条演进路径,一个更大的问题浮出水面: AI 编程工具最终会演化成什么样子?
claude-code-from-scratch 项目用大约 3000 行 TypeScript 实现了一个"迷你版 Claude Code"。它有 Think-Act-Observe 循环、工具系统、System Prompt、权限控制、记忆、Skill、多代理、MCP——我们在前面 10 篇文章里拆解的核心概念,它全都有。
在 MCP 出现之前,每个 AI 工具集成都是一次定制开发。想让 ChatGPT 连数据库?写一个插件。想让 Claude 调 GitHub API?写一个 Function Calling 定义。想让 Copilot 访问你的内部系统?写一个 Custom Tool。
有一个反直觉的现象:同一个模型,拆成多个独立实例让它协作,效果往往比单个实例更好。 不是算力增加了(三个实例的总 token 消耗比一个实例多),不是能力提升了(每个实例都是同样的模型)。提升来自角色分离——当每个 Agent 只关注问题的一个方面时,它做得比"全能 Agent"更专注、更深刻。
如果你用过 Claude Code,你可能注意到它有一个 /skills 命令,可以列出已安装的"技能"。写作规范、架构设计方法、TDD 流程、代码审查策略——听起来像一个插件市场。
上一篇文章聊了上下文压缩——它解决的是"当前会话能记住多少"的问题。但编程助手还需要另一种记忆:跨会话的长期记忆。
如果你以为 System Prompt 就是"给 AI 设定一个人设",那 Claude Code 的 system prompt 会颠覆你的认知。 它不是几句话。它是一个上千行的模板引擎,由多个层次组成,每一层负责不同的事:身份定义、行为约束、工具说明、项目上下文、记忆注入、技能加载。有些层是静态的(每次一样),有些层是动态的(根据项目、会话、用户偏好实时注入)。
上一篇文章我们聊了 Think-Act-Observe 循环——AI 编程助手的骨架。骨架本身不会干活,它需要肌肉。在 Claude Code 里,肌肉就是工具。 没有工具,循环里 Think 和 Observe 之间缺了 Act,退化回普通的问答。有了工具,模型才能触碰真实世界:读你的代码、改你的配置、跑你的测试。
如果你把 Claude Code 的源码翻一遍,你会发现一个反直觉的事实: 整个程序的核心,是一个 while 循环。 不是复杂的状态机,不是精巧的管道,不是分布式协调——就是一个朴素的 while 循环,反复做三件事:让模型想、让模型动手、把结果喂回去。