Steve Yegge 说用 AI 编程 Agent 的人比普通工程师高效 10x 到 100x,比 2005 年的 Google 工程师高效 1000x。这是真实数字,Garry Tan 见过,自己也在用。但人们听到这个数字后,会去找错的解释:更好的模型、更大的参数。

事实是:用 2x 和用 100x 的人,用的是同一个模型。差距不在智能,在架构。 而这个架构的秘密,一张索引卡就能写下。

3月31日,Anthropic 意外把 Claude Code 完整源码(512,000行)发布到了 npm registry。Garry Tan 把它读完了,验证了他在 YC 一直教的结论:秘密不是模型,是包裹模型的那层东西。

什么是 Harness

Harness 是跑 LLM 的程序,做四件事:循环驱动模型、读写文件、管理 context、执行安全防护。就这样。这是「薄」的部分。

反面模式是「厚 Harness、薄 Skills」:40+ 工具定义吃掉一半 context window;一个 Chrome MCP 做截图-查找-点击-等待-读取需要 15 秒;每个 REST API 端点都包装成独立工具。这些让 token 消耗变成 3 倍,延迟变成 3 倍,故障率变成 3 倍。

你真正想要的是专速工具:每个浏览器操作 100 毫秒,而不是 15 秒。快了 75 倍。软件不需要做得很精巧,只需要做对。

Skill 文件:Markdown 即编程语言

Skill 文件是可复用的 Markdown 文档,教模型怎么做,而不是做什么——做什么由用户决定,Skill 提供的是过程。

最关键的洞察:Skill 文件像一个方法调用。它接收参数,用不同参数调用它,产出完全不同的能力。考虑一个叫 /investigate 的 Skill,有七个步骤:明确数据集范围、建立时间线、对每份文档做标注(diarize)、综合分析、两方论证、引用来源。它接收三个参数:TARGET、QUESTION、DATASET。

用它分析一个安全科学家加 210 万封发现邮件,得到的是判断举报者是否被噤声的医学研究员。用它分析一家壳公司和 FEC filings,得到的是追踪协调竞选捐款的法务调查员。

同一个 Skill,同七个步骤,同一个 Markdown 文件。 Skill 描述的是判断过程,调用时注入参数,产出不同领域的专业能力。Skill 文件的本质不是 Prompt 工程,是软件设计——用 Markdown 作为编程语言,用人类判断作为运行时。

Resolver:上下文路由表

当 X 类型任务出现时,加载文档 Y。这就是 Resolver。

一个开发者改了一个 Prompt,没 Resolver 的话直接就上线了;有 Resolver 的话,模型会先读 docs/EVALS.md——上面写着:运行评测套件,比对分数,如果精度下降超过 2%,回退并排查。开发者不知道这个评测套件存在,Resolver 在对的时机加载了对的 context。

Resolver 让 20,000 行的 CLAUDE.md 变成 200 行指针——所有知识在需要时按需调取,不污染 context window。

Latent 与 Deterministic:最常见的架构错误

系统中的每一步要么是 Latent(潜在空间),要么是 Deterministic(确定性),混淆两者是最常见的 Agent 设计错误。

Latent 是智能待的地方:模型读取、解释、决定。判断、综合、模式识别。 Deterministic 是信任待的地方:同样输入,同样输出,每次都一样。SQL 查询、编译后代码、算术运算。

LLM 能给 8 个人排出一桌考虑性格和社会动态的座次。但让它排 800 人的座次,它会生成一个看起来合理但完全错误的座次表——因为这是组合优化问题,被强行塞进了潜在空间。

最差的系统把工作放到了错误的一侧。最好的系统对这条边界线极其无情。

Diarization:让 AI 做真正的知识工作

Diarization 是从几十上百份文档中提炼出结构化画像的关键步骤——不是 SQL 查询,不是 RAG pipeline 能做到的,是模型真正读进去、记住矛盾、注意到变化、综合出结构化情报。

三层架构

Fat Skills(厚技能)放在最上层:过程、判断、领域知识,90% 价值所在。Thin CLI Harness(薄 CLI Harness)在中间,约 200 行代码,JSON 进、文本出,默认只读。你的应用放在底层:QueryDB、ReadDoc、Search、Timeline——确定性基础设施。

原则是单向的:把智能往上推入 Skills,把执行往下推入确定性工具,让 Harness 保持薄。 这样一来,模型每次升级,所有 Skill 自动变强,而确定性层完全稳定。

学习循环:Skill 自己写自己

YC 团队在设计 6000 人 Startup School 的匹配系统时,展示了这套架构的威力。

每位创始人有结构化申请表、问卷答案、1:1 导师对话记录,以及公开信号:X 帖子、GitHub commits、Claude Code 记录。

匹配 Skill 即方法调用,同一 Skill 三种调用方式,产出完全不同策略:

/match-breakout:1200 人,按行业亲缘性聚类,30 人一室——Embedding 加确定性分配。/match-lunch:600 人,跨行业偶发匹配,8 人一桌,无重复——LLM 发明主题,确定性算法分配座位。/match-live:现场实时,邻近 Embedding,200ms 内完成 1:1 配对,排除已见过的人。

有些判断是聚类算法永远做不到的:两个同在 AI infra 赛道的人,其实一个做成本归因,一个做编排,不是竞争对手,可以同组;一个申请材料写"开发者工具"但 1:1 对话透露他在做 SOC2 合规自动化——重新分类为 FinTech/RegTech。Embedding 捕捉不了 Kim 的重新分类,必须读完整份档案才能判断。

活动结束后,/improve Skill 读取 NPS 调查,对「中等」评价(不是「差」,是「还行但差点意思」)做 Diarization,提取模式,写回匹配 Skill 的规则里:

当参会者说"AI infrastructure"但 80%+ commits 在计费模块 → 分类为 FinTech,不是 AI Infra。当两人已在同一组认识 → 惩罚邻近度,优先新面孔。

第一次活动:12%「中等」评价。下一次:4%。Skill 自己学会了「OK」实际意味着什么,系统自动变好,不需要任何人改代码。

禁止一次性工作

Garry Tan 发过一条给 OpenClaw 的指令,反响远超预期:

你不允许做一次性工作。如果我让你做某件事,而这件事以后还会发生,你必须:手动做第一遍(3-10 条样本),把输出给我看。如果我满意,把它编纂成 Skill 文件。如果需要自动化,把它加到 Cron 里。判断标准:如果我需要问你同一件事两次,你就失败了。

这不是 Prompt 工程技巧,是一整架构的外在表现。你写的每个 Skill 都是对系统的永久升级。 不会退化,不会遗忘,会在你睡觉的时候跑。当下一个模型发布时,每个 Skill 立刻变强——判断部分的 latent step 提升,确定性 step 完全稳定。

这就是 Yegge 说的 100x 的实现方式。不是更聪明的模型,是厚 Skills、薄 Harness,以及把一切都编纂成规则的纪律。系统会复合增长——建一次,永远跑。