先披露利益相关:官方主张"harness 比 model 更重要",一定程度上是在为自家 CLAUDE.md / Hooks / Skills / Plugins / MCP 等扩展点体系做架构合法化。文章结构性回避了与 Cursor(用 codebase index 的 RAG 路线)、Codex(同样有 AGENTS.md 体系)、Windsurf 的横向对比,把它当作"Claude Code 团队对自家最佳实践的权威说明",而不是"AI 编码工具选型建议"。
以下是这篇博客的中文化深度拆解,补充 ChooseAI 读者的可迁移视角,并标出 Anthropic 没说但实操前应该想清楚的几条。
一、核心论点:harness 比 model 更重要
文章一上来就否定了一个常见误解——Claude Code 的能力不只是由底层模型决定。团队评估 AI 工具时往往盯着 benchmark 分数,但 Anthropic 的实战观察是:围绕模型构建的"harness(挽具)"比模型本身更决定最终表现。
Harness 由 5 个核心扩展点构成,它们之间有严格的顺序依赖:CLAUDE.md → Hooks → Skills → Plugins → MCP servers,外加两个补充能力:LSP integrations 和 Subagents。
这个论断对 ChooseAI 读者的迁移价值:评估一款 AI Agent 工具的成熟度,不只看模型,看它的扩展生态闭环是否完整。按这个标准回看 5 月以来发布的多家 Agent 框架——Claude Code、Codex(Jason Liu 写过)、OpenAI Agents SDK、OpenClaw、Hermes——能不能跑通"上下文文件 + 自动化 hook + 可复用 skill + 团队分发 + 外部连接"这条链路,是分水岭。
文章同时讲了 Claude Code 如何在大型代码库里导航:像工程师一样 traverse 文件系统、读文件、用 grep 查找、跟踪 references。关键点是 Claude Code 本地运行,不需要 codebase 索引被构建、维护、上传到服务器。
Anthropic 顺手把对手的 RAG 路线点了一下:RAG 编码工具在大型代码库下会因为 embedding 管道跟不上活跃工程团队的提交速度而失败——开发者查索引时,索引可能已经反映了几周前、几天前、甚至几小时前的旧代码,会返回团队两周前重命名过的函数、或上个 sprint 已删除的模块,没有任何过期标识。Agentic search 路线避开这个问题,代价是需要足够的起始 context 才能知道去哪找——这就把价值导回到 CLAUDE.md 和 Skill 的质量上。
这里隐含的对比对象是 Cursor、Codex 的索引路线,但文章没点名。
二、五个扩展点 + 两个能力:Claude Code 完整 harness 拆解
CLAUDE.md 文件先打底。每次会话自动加载的上下文文件,根目录管大方向,子目录管局部约定。Anthropic 给的核心建议:保持精简、保持聚焦。因为它每次会话都加载,塞太多会拖累整体性能。
Hooks 让 setup 自我演化。多数团队把 hooks 当成"防 Claude 做错事的脚本",但更有价值的用法是持续改进:
- Stop hook 可以在会话结束时反思发生了什么,在上下文还新鲜时主动提议更新 CLAUDE.md
- Start hook 可以根据开发者当前所在的模块,动态加载团队特定的上下文
- Lint / format 这类自动化检查,hook 比让 Claude 自己记住指令更可靠
这条对 ChooseAI 读者的启发:hook 不只是 guard rail,更是 self-improving 机制——你的工作流系统应该能够在使用中自己长大。
Skills 让专长按需出现,不胀每个会话。大型代码库有几十种任务类型,不可能让所有专长都常驻在每个会话里。Skills 通过 **progressive disclosure(渐进式披露)**解决——只有当任务真正需要时才加载。
文章给了一个非常有价值的细节:Skills 可以 scope 到特定路径,只在相关代码库部分激活。例子:支付服务团队可以把他们的部署 Skill 绑定到 payments 目录,这样有人在 monorepo 其他地方工作时,这个 Skill 不会自动加载。
这条 ChooseAI 用户做 Obsidian vault 或 OpenClaw skill 时可以直接借用:把 skill 与路径绑定,而不是全局生效。 Plugins 让有效的 setup 不再部落化。大型代码库的痛点之一是"好的配置经验只停留在小圈子里"。Plugin 把 skills + hooks + MCP 配置打包成单一可安装单元,新工程师第一天装上 Plugin 就拥有了和老员工同样的上下文与能力。Plugin 更新通过 managed marketplace 在组织内分发。
Anthropic 给的例子:一家大型零售客户做了个 Skill,把 Claude 连到他们的内部分析平台,业务分析师可以不离开工作流就拉取业绩数据,然后把它打包成 Plugin 在大规模 rollout 之前分发。
LSP 集成给 Claude 同等于开发者 IDE 的导航能力。多数大代码库的 IDE 都跑着 LSP,支持"go to definition"和"find all references"。把这层暴露给 Claude,它就能拿到符号级精度——可以跟着函数调用跳到定义、跨文件跟踪引用、区分不同语言里同名但不同的函数。没有 LSP,Claude 就只能在文本上做模式匹配,可能落到错误的符号上。
文章给了一个具体案例:一家企业软件公司在 Claude Code 全员铺开之前先做了 org-wide LSP 集成,目的是让 C 和 C++ 在大规模下的导航足够可靠。对多语言代码库,这是回报率最高的投入之一。
MCP servers 扩展一切。MCP 是 Claude 连接 Claude 自己够不到的内部工具、数据源、API 的方式。Anthropic 提到最成熟的团队会建立 MCP server 暴露"结构化搜索"作为 Claude 可直接调用的工具——这是把 Anthropic 自身的 MCP 标准与企业内部检索能力做了显式绑定。
Subagents 把探索和编辑分开。Subagent 是有独立 context window 的隔离 Claude 实例,接任务、干活、只把最终结果返回给父 agent。harness 就位后,一些团队让只读 subagent 去 map 一个子系统、把发现写进文件,主 agent 拿着完整图景再去编辑。
文章最后给了一张能力对照表,列出了每个组件最常见的误用——这是这篇文章里最有 ChooseAI 价值的部分,直接照搬:
| |
|---|
| 把本应放进 Skill 的可复用专长塞进了 CLAUDE.md |
| |
| 把一切都塞进 CLAUDE.md 而不是建 Skill |
| |
| |
| |
| |
三、三个配置模式:Anthropic 在实战中反复观察到的共性
模式一:让代码库在规模下可导航。Claude 在大型代码库里的能力受限于"能不能找到正确的上下文"——加载太多会拖性能,加载太少则盲飞。Anthropic 给出 6 条具体做法:
- CLAUDE.md 保持精简且分层:根文件只放指针和关键 gotcha,其他东西都会变成噪音
- 在子目录初始化,不在 repo 根目录:这条反直觉,但 Claude 会自动沿目录树向上走、加载每个 CLAUDE.md,所以根目录上下文不会丢
- 按子目录 scope test 和 lint 命令:Claude 改了一个 service 时跑全套测试会超时并浪费 context
- 用
.claude/settings.json 的 permissions.deny 排除生成文件、构建产物、第三方代码;这些 deny 规则要版本化提交,每个开发者都拿到一致的降噪
- 当目录结构本身不够清晰时,建 codebase maps:根目录放一份 Markdown 列出每个顶层文件夹+一句话描述
- 跑 LSP servers 让 Claude 按符号搜索,而不是按字符串:大型代码库 grep 一个常见函数名会返回上千匹配,Claude 烧光 context 也分不清哪个有意义
Anthropic 同时承认了边界场景:有几十万文件夹、几百万文件的极端代码库,或者用非 Git 版本控制的遗留系统,层级 CLAUDE.md 方法会失效——这部分留给系列后续文章。
模式二:随模型演进主动维护 CLAUDE.md。文章在这里提了一条对所有 ChooseAI 读者都强相关的判断:
"给当前模型写的指令,在未来模型上可能反过来掐脖子。"
具体例子:CLAUDE.md 里的"每次重构限制为单文件改动"——这条规则曾经帮助旧模型保持专注,但新模型已经能做协调好的跨文件编辑时,它就反而阻止了模型发挥。同样的事会发生在那些为弥补特定模型缺陷而写的 Hook 或 Skill 上——一旦缺陷被新版本修掉,这些 hook 就成了开销。Anthropic 举的例子:一个拦截文件写入以强制执行 p4 edit 的 hook,在 Claude Code 加了原生 Perforce 支持后就成了冗余。
Anthropic 的建议:每 3-6 个月做一次配置审查,新模型发布后感觉性能停滞时也审一次。
这条直接对应 ChooseAI 用户的实际维护:你的 AGENTS.md、SKILL.md、Hook 脚本都需要定期清理,不是越多越好,而是要随模型升级减重。
模式三:指定 Claude Code 管理与采纳的 ownership。技术配置单独不能驱动采纳。Anthropic 观察到铺得最快的 rollout 都有一个共同点:在大范围放权之前先有专门的基础设施投入——可能是一支小团队,有时只是一个人,先把工具链布好,让开发者第一次接触时就是顺畅而不是受挫的体验。
值得划重点的两个角色形态:
- Agent manager:在几个组织里正在出现的新角色——PM/工程师混合的功能,专门负责管 Claude Code 生态
- DRI(Directly Responsible Individual,最小可行版本):一个人对 Claude Code 配置有 ownership 和决策权,管 settings、permissions policy、plugin marketplace、CLAUDE.md 约定,并持续维护
Anthropic 给出的判断:自下而上的采纳能激发热情,但缺乏中心化整理会让"知识停留在部落级",采纳最终会到顶。
监管行业还需要早建跨职能工作组(工程、信息安全、合规一起定义需求)。
四、给独立开发者与小团队的迁移建议
原文目标读者是 enterprise scale 的工程组织(上千开发者、百万行 monorepo),ChooseAI 大多数读者不在这个量级。但文章里至少 6 条方法可以直接迁移到个人/小团队场景:
- CLAUDE.md / AGENTS.md 必须分层:repo 根写大方向,各子目录写局部约定。klaussss 自己的 OpenClaw 与 ChooseAI 工作流可以直接套
- Skill 与路径绑定:小团队同样会有"新闻生产 skill 只在 news/ 目录加载、SEO skill 只在 seo/ 目录加载"的需求
- Stop hook 自动反思更新文档:这是个人工作流最有价值的迁移——每次会话结束让 Claude 自己提议更新 SKILL.md / AGENTS.md
- permissions.deny 版本化:把".claude/settings.json"提交到 git,确保跨机器一致
- 每 3-6 个月清理过时指令:OpenClaw / Hermes / 个人 vault 的所有 Markdown 文件都该定期审,减重比加内容更重要
- Plugin 化封装最佳实践:即便是个人,把跑通的工作流封装成可分发的 Plugin,迁移成本会显著降低
特别要说的一点:在子目录初始化 Claude Code 这条反直觉建议,对小项目同样适用。如果你在大 vault 里只关心 vault/projects/chooseai/ 这一块,进入子目录再启动 Claude Code 比在 vault 根启动效果更好——Claude 自动会沿目录树向上走加载所有 CLAUDE.md,所以根级上下文不会丢。
五、局限与利益相关披露
读完文章,有几个Anthropic 没明说但 ChooseAI 读者实操前应该想清楚的边界:
第一,官方博客的视角偏置。文章通篇是 Anthropic 自家观点,没有任何与 Cursor、Codex、Windsurf、Devin 的横向对比。它默认 harness 体系是 Claude Code 的优势,但没有给出"在 X 场景下 Cursor 的 codebase index 反而更适合"这类客观比较。如果你的实际问题是"该选 Claude Code 还是 Cursor",这篇文章给不出答案。
第二,Agentic Search vs RAG 的判断需要存疑。Anthropic 把 RAG 的失败描述为"在大规模下 embedding pipeline 跟不上"——这是真实问题,但 Cursor、Sourcegraph Cody 等用 RAG 路线的工具有自己的增量索引方案。官方博客对竞品技术路线的简化描述需要读者自行验证。
第三,LSP 集成对 ChooseAI 读者门槛较高。文章建议对 C/C++/多语言代码库部署 LSP,但这套基础设施需要专门工程投入,对个人开发者基本不可行——这部分内容是给大企业读的,小团队跳过即可。
第四,Plugin marketplace 是企业功能。文章里 plugin 通过 "managed marketplace" 分发的能力是 Claude Code for Enterprise 的特性,个人/Pro/Max 用户能不能用、用法是什么,文章没明确说——需要去 Claude Code 文档进一步确认。
第五,"agent manager 是新角色"的论断证据偏弱。Anthropic 说"在几个组织里正在出现"这个角色——这是个观察而非数据。到底有多少企业实际设了这个岗位、薪资如何、招聘条件是什么,文章没给数字。这部分应该当作行业预测而不是事实。
第六,模型迭代频率与配置维护成本。文章建议"每 3-6 个月审一次配置",但 Anthropic 自家模型(Claude Opus / Sonnet / Haiku)的迭代节奏快于 3 个月,实际维护成本可能高于文章给的暗示。
第七,系列文章的连续性。文章末尾承诺"会在后续文章里覆盖几十万文件夹、非 Git 版本控制等边界场景"——这是一个预告,如果你的代码库就是这类边界场景,当下这篇文章不能给你完整答案,需要继续追踪系列。
六、给 ChooseAI 读者的 5 步上手清单
把这篇官方博客压缩成可立即上手的 5 步:
- 审你的 CLAUDE.md / AGENTS.md:把"通用上下文"留在根目录,把"局部约定"下沉到子目录;根文件只放指针和关键 gotcha
- 建一个 Stop Hook 试试自我反思:让 Claude 在会话结束时主动提议更新 CLAUDE.md / SKILL.md,这是 self-improving harness 的最低成本入口
- 把至少一个 Skill scope 到路径:挑一个你最常重复的工作流(SEO 文章生产、新闻初稿、Skill 文档撰写),建一个路径绑定的 Skill,验证按需加载是否提升效率
- 把
.claude/settings.json 版本化:permissions.deny 提交进 git,跨机器一致;node_modules、dist、生成文件这些都该 deny
- 季度配置审查:在日历里设一个每 90 天的提醒——回头看 CLAUDE.md / SKILL.md / Hook 脚本里有没有专为旧模型写的 workaround 已经成了束缚,有就删
如果这 5 步只能挑 1 件做,挑第 5 件——"随模型演进减重"是这篇文章里长期回报最高的方法论,也是大多数 Claude Code / Codex 用户最容易忽略的一条。