🔓 Claude Code 爆料:这些修复都是员工专属,公开版没有!

原文导读
@iamfakeguru 逆向工程了泄漏的 Claude Code 源码,基于自己海量 Agent 使用日志分析,发现了一个惊人事实:Anthropic 自己知道公开版 Claude Code 存在幻觉和懒惰问题,他们也知道怎么修复,但这些修复「员工专属」,不给公开版用户用。
来看看都有哪些公开版没有的”内部优化”,以及你怎么手动绕过限制——作者已经放出了完整的 CLAUDE.md 配置。
1. 员工专属验证门槛:写完代码不检查就说”完成了”
你让 AI 改三个文件,它说”搞定了!”,你打开一看发现 40 个错误。
原因找到了:在 services/tools/toolExecution.ts 里,Claude Code 判断文件写成功的标准只有一个:字节有没有写到磁盘。不检查代码能否编译,不检查有没有类型错误,只要字节写进去了就告诉你”搞定了”。
更扎心的是:源码里明确写了,要改完验证完才能说成功,这个 Instructions 是通过 process.env.USER_TYPE === 'ant' 门槛限制的——只有 Anthropic 员工自己能用,公开版用户没有。
你手动怎么绕过? 在你的项目根目录 CLAUDE.md 里加上这条强制要求:
修改完每个文件后,必须先跑
npx tsc --noEmit和npx eslint . --quiet,所有错误修复完才能说任务完成。
2. 上下文螺旋式死亡:长对话到一定程度必然崩盘
你推一个大重构,前 10 条消息看起来干净精准,到第 15 条 AI 开始幻觉变量名,引用不存在的函数,5 分钟前还理解完美的东西现在已经乱了。
这不是降级,这是截肢——当上下文 token 超过 ~16.7万,services/compact/autoCompact.ts 自动压缩会保留 5 个文件(每个限 5000 token),把其他一切压缩成一个总结,原来读过的文件、推理链、中间决定,全部扔掉。
为什么会这样?乱七八糟的死代码、没用的导入早就吃光了你的token预算,更容易触发压缩。
你手动怎么绕过? 重构第一步就是删除死重量:死属性、没用的导出、孤立的 import、调试日志——先清理这些,提交完再开始干活。每个阶段最多改 5 个文件,这样压缩不会在任务中途触发。
3. 极简命令:为什么 AI 总是偷懒打补丁不根治?
你让 AI 修复杂 bug,它不加思考就是加个 if 凑活,根本不碰架构。你觉得它懒,其实它是听话——constants/prompts.ts 里明确写了:
- “先尝试最简单方法”
- “不要超出要求去重构”
-“三行相似代码好过过早抽象”
这些都是系统级指令,定义了什么叫”完成”。你的提示说”重构架构”,但系统提示说”能偷懒就偷懒”,系统提示赢了。
你手动怎么绕过? 在 CLAUDE.md 里覆盖定义:”我要你像资深高级工程师一样,如果架构有问题就必须修复,不要偷懒用补丁——代码质量不合格不算是完成。”
4. 没人告诉你的多智能体 swarm:一个任务改 20 个文件,单 agent 顺序跑必然上下文崩了
你让它改 20 个文件,到第 12 个文件早就失去上下文一致性了。其实Anthropic 已经内置了多智能体编排,每个子 agent 有独立隔离的上下文、独立压缩循环、独立 token 预算,没有硬编码上限。但公开版没人告诉你,你就这么单 agent 顺序跑,自己限制了自己。
你手动怎么绕过? 强制启用子 agent:批量改文件,分成 5-8 一组,并行启动多个子 agent,每个子 agent 有独立上下文窗口。五个 agent 就是五个 167K = 总共 835K 上下文。
5. 2000 行盲区:读大文件超过 2000 行自动截断,不告诉你
AI 读一个 3000 行的文件,改完发现它改的是基于前 2000 行,后面根本没看见。它也不告诉你,就接着改,错了你都不知道怎么错的。
tools/FileReadTool/limits.ts 里硬编码:每个文件最多 2000 行 / 25000 token,超过就悄悄截断。
你手动怎么绕过? 超过 500 行的文件必须分块读,用 offset 和 limit 参数逐次读取,不能一口气读。
6. 搜索结果失明:grep 结果太长就截断,它也不告诉你
你让它全站 grep 找某个函数调用,它返回告诉你”找到了 3 处”,实际有 47 处,因为放下了放不下就截断了,它不说,你也不知道。
utils/toolResultStorage.ts:超过 50000 字符就存磁盘,给 AI 只看 2000 字节预览。AI 就从预览看,根本不知道漏了。
你手动怎么绕过? 范围缩小,目录分开搜,如果结果看着就不对, narrower 范围重新搜。
7. grep 不是 AST:文字匹配就是文字匹配,改名字肯定漏
你改函数名,它 grep 完改了 8 处,动态导入、字符串引用、注释里提到它,肯定漏改。没办法,Claude Code grep 就是文本匹配,没有语义分析,这不是 AI 不知道,是工具本身限制就写在那了。
你手动怎么绕过:重命名函数必须分开搜各种情况,默认就是搜不全,改完必须手动检查。
干货:作者放出员工级 CLAUDE.md 配置
把这段放到你项目根目录 CLAUDE.md,就能用上 Anthropic 员工同等配置:
1 | |
这样就用上了 Anthropic 员工内部才能用到的配置,公开版 Claude Code 也能有员工级体验。
原文:@iamfakeguru
本文整理自推文,不构成投资建议