今天最有意思的事是 Claude Code 源码泄露,算是 A 厂最大的一次开源了
各种隐藏功能已经有很多人在聊了,简单过一下:AI 宠物 Buddy、24 小时主动助手 Kairos、闲置时自动整理记忆的 Auto-Dream、后台常驻的 Daemon 模式、跨设备传送会话、云端 Bug 舰队审代码。
我更好奇的是另一个问题: Claude Code 比其他同类工具优秀在哪里?
花了半天时间,查资料,看架构,和 AI 对话,到现在砍得越来越兴奋。它工程设计值得每个做 Agent 的团队学习。下面是我的七个总结:
1 prompt 每次都在变,根据场景实时拼装。
大部分 Agent 产品的 prompt 就是一大段固定文本。Claude Code 有个函数像流水线一样工作:先拼固定模块(身份、规范、行为准则、工具规则、语气),再根据当前状态加料(记忆、环境、语言、连了哪些插件、开没开精简模式)。
同一个用户前后两次对话,喂给模型的指令完全不同。而且这个拼装顺序是精心设计过的,前半段稳定的内容能被缓存,后半段会变的内容放后面,这样每天几万次请求能省下大量 token 费用。写 prompt 的时候考虑缓存节省 token,这个意识很多团队还没有。
2 一套写死的“不要做清单”
用过别的 coding agent 会发现让它改个 bug 它顺手重构半个文件,让它测一下它说"通过了"但根本没跑。CC 为了管住了这些毛病,逐条列好不要做清单:不加用户没要求的功能、不过度抽象、不瞎重构、不乱加注释、先读代码再改代码、不轻易建新文件、方法失败了先诊断再换策略、结果如实汇报不能假装测过了。
3 六个 Agent 分工,做事的、查事的、规划的权限完全隔开
至少六个内建角色各司其职。Explore Agent 只能读文件,连创建文件都不行。Plan Agent 也只能读,只管理解需求、分析架构、输出计划。Verification Agent 是"想尽办法做边界测试":强制跑 build,前端改动要验页面,后端要实测响应。
4 为防止工具调用错误,设立一条安检线
模型想调一个工具,中间要过好几道关卡:先校验输入对不对,再预判这个操作有没有风险,然后走权限审批,全部通过了才真正执行。执行完还有后续检查,失败了有专门的兜底逻辑。
还有个 Hook 机制,能在执行前改写输入、直接拒绝、补充上下文,但 Hook 放行不能绕过系统级的拒绝规则。很多 agent 翻车就是模型用错了工具直接执行了,比如一条 sed 命令正则写错整个文件就废了。这条线在动手前把风险拦住了。
5 子 Agent 调度的省钱策略
很多 Agent 系统第一天跑得挺好,跑一百天就一堆泄漏,一个子任务从触发到完成要走十几步:解析输入、判断类型、构造 prompt、组装工具、创建上下文、注册插件、进入执行循环、记录日志、清理资源。
CC 的子任务会继承主线程的 prompt 前缀,目的是复用缓存少烧 token。执行完还会自动清理 shell 进程、MCP 连接、临时状态,不留垃圾。
6 三套扩展机制,重点是模型自己知道该用什么
Skill、Plugin、MCP 三套扩展能力装上去之后,都会通过各种通道告诉模型"我现在多了什么能力、什么场景该用"。
很多平台也有插件市场,装完之后模型根本不知道有这回事。Claude Code 把清单和说明书都摆在模型看得见的地方,Skill 按需加载,MCP 指令按连接状态注入,需要什么上什么,不需要的不占空间。
7 从目录结构看,这就是一个小型操作系统
入口层、提示词系统、工具定义、运行时服务、命令系统、协调器、记忆系统、插件、Hook、任务系统。
四个入口:CLI、初始化流程、MCP 模式、SDK。同一套内核跑四种界面。大部分开源 Agent 就是 main 加几个 tool 文件,这个复杂度完全不在一个级别。
拿模型做产品的朋友可以参考上面方法,用工程系统设计弥补模型的不可控。模型会偷懒,就把规矩写死。模型会用错工具,就在中间加安检。模型自己验不好自己的活,就拆一个专门找茬的角色出来。上下文会爆,就从 prompt 拼装到子任务调度每一层都在省。
谁先把这些层补上,谁的产品手感就会好一个台阶。
各种隐藏功能已经有很多人在聊了,简单过一下:AI 宠物 Buddy、24 小时主动助手 Kairos、闲置时自动整理记忆的 Auto-Dream、后台常驻的 Daemon 模式、跨设备传送会话、云端 Bug 舰队审代码。
我更好奇的是另一个问题: Claude Code 比其他同类工具优秀在哪里?
花了半天时间,查资料,看架构,和 AI 对话,到现在砍得越来越兴奋。它工程设计值得每个做 Agent 的团队学习。下面是我的七个总结:
1 prompt 每次都在变,根据场景实时拼装。
大部分 Agent 产品的 prompt 就是一大段固定文本。Claude Code 有个函数像流水线一样工作:先拼固定模块(身份、规范、行为准则、工具规则、语气),再根据当前状态加料(记忆、环境、语言、连了哪些插件、开没开精简模式)。
同一个用户前后两次对话,喂给模型的指令完全不同。而且这个拼装顺序是精心设计过的,前半段稳定的内容能被缓存,后半段会变的内容放后面,这样每天几万次请求能省下大量 token 费用。写 prompt 的时候考虑缓存节省 token,这个意识很多团队还没有。
2 一套写死的“不要做清单”
用过别的 coding agent 会发现让它改个 bug 它顺手重构半个文件,让它测一下它说"通过了"但根本没跑。CC 为了管住了这些毛病,逐条列好不要做清单:不加用户没要求的功能、不过度抽象、不瞎重构、不乱加注释、先读代码再改代码、不轻易建新文件、方法失败了先诊断再换策略、结果如实汇报不能假装测过了。
3 六个 Agent 分工,做事的、查事的、规划的权限完全隔开
至少六个内建角色各司其职。Explore Agent 只能读文件,连创建文件都不行。Plan Agent 也只能读,只管理解需求、分析架构、输出计划。Verification Agent 是"想尽办法做边界测试":强制跑 build,前端改动要验页面,后端要实测响应。
4 为防止工具调用错误,设立一条安检线
模型想调一个工具,中间要过好几道关卡:先校验输入对不对,再预判这个操作有没有风险,然后走权限审批,全部通过了才真正执行。执行完还有后续检查,失败了有专门的兜底逻辑。
还有个 Hook 机制,能在执行前改写输入、直接拒绝、补充上下文,但 Hook 放行不能绕过系统级的拒绝规则。很多 agent 翻车就是模型用错了工具直接执行了,比如一条 sed 命令正则写错整个文件就废了。这条线在动手前把风险拦住了。
5 子 Agent 调度的省钱策略
很多 Agent 系统第一天跑得挺好,跑一百天就一堆泄漏,一个子任务从触发到完成要走十几步:解析输入、判断类型、构造 prompt、组装工具、创建上下文、注册插件、进入执行循环、记录日志、清理资源。
CC 的子任务会继承主线程的 prompt 前缀,目的是复用缓存少烧 token。执行完还会自动清理 shell 进程、MCP 连接、临时状态,不留垃圾。
6 三套扩展机制,重点是模型自己知道该用什么
Skill、Plugin、MCP 三套扩展能力装上去之后,都会通过各种通道告诉模型"我现在多了什么能力、什么场景该用"。
很多平台也有插件市场,装完之后模型根本不知道有这回事。Claude Code 把清单和说明书都摆在模型看得见的地方,Skill 按需加载,MCP 指令按连接状态注入,需要什么上什么,不需要的不占空间。
7 从目录结构看,这就是一个小型操作系统
入口层、提示词系统、工具定义、运行时服务、命令系统、协调器、记忆系统、插件、Hook、任务系统。
四个入口:CLI、初始化流程、MCP 模式、SDK。同一套内核跑四种界面。大部分开源 Agent 就是 main 加几个 tool 文件,这个复杂度完全不在一个级别。
拿模型做产品的朋友可以参考上面方法,用工程系统设计弥补模型的不可控。模型会偷懒,就把规矩写死。模型会用错工具,就在中间加安检。模型自己验不好自己的活,就拆一个专门找茬的角色出来。上下文会爆,就从 prompt 拼装到子任务调度每一层都在省。
谁先把这些层补上,谁的产品手感就会好一个台阶。