瘦 Harness,胖技能

  • 来源: X.com - @garrytan
  • 作者: Garry Tan (@garrytan)
  • 翻译时间: 2026-04-14
  • 原文标题: Thin Harness, Fat Skills

正文内容

Steve Yegge 说,使用 AI 编码代理的人"比今天使用 Cursor 和聊天的工程师生产力高 10 到 100 倍,大约是 2005 年 Google 员工的 1000 倍。"

这是真实的数字。我见过。我经历过。但当人们听到它时,他们倾向于错误的解释。更好的模型。更聪明的 Claude。更多参数。2 倍的人和 100 倍的人使用的是相同的模型。差异不在于智能。而在于架构——它可以写在一个索引卡上。


Harness 就是产品

2026年3月31日,Anthropic 意外地将 Claude Code 的整个源代码发布到了 npm 注册表。512,000行。我读了它。它证实了我一直在 YC 教授的一切:秘密不在于模型。而在于包裹模型的那个东西。

实时仓库上下文。提示缓存。专用工具。上下文膨胀最小化。结构化会话记忆。并行子代理。这些都没有让模型更聪明。所有这些都给模型提供了正确的上下文,在正确的时间,而不让它淹没在噪音中。

那个包装器叫做 harness。每个 AI 构建者都应该问的问题是:什么进入 harness,什么留在外面?答案有一个特定的形状。我称之为 瘦 harness,胖技能


五个定义

瓶颈从来不是模型的智能。模型已经知道如何推理、综合和编写代码。它们失败是因为它们不理解你的数据——你的模式、你的约定、你的问题的特定形状。五个定义解决了这个问题。

1. 技能文件

技能文件是一个可复用的 markdown 文档,教模型如何做某事。不是做什么——用户提供那个。技能提供过程。

大多数人错过的关键洞察:技能文件就像方法调用一样工作。它接受参数。你用不同的参数调用它。相同的程序根据你传入的内容产生完全不同的能力。

考虑一个叫做 /investigate 的技能。它有七个步骤:确定数据集范围、构建时间线、为每个文档做 diarize、综合、论证双方、引用来源。它接受三个参数:TARGET、QUESTION 和 DATASET。指向一个安全科学家和210万封发现邮件,你得到一个医疗研究分析师确定举报人是否被压制。指向一个空壳公司和 FEC 文件,你得到一个法医调查员追踪协调的竞选捐款。

相同的技能。相同的七个步骤。相同的 markdown 文件。技能描述了一个判断过程。调用提供了世界。

这不是提示工程。这是软件设计,使用 markdown 作为编程语言,人类判断作为运行时。Markdown 实际上是比刚性源代码更完美的能力封装,因为它用模型已经思考的语言描述过程、判断和上下文。

2. Harness

Harness 是运行 LLM 的程序。它做四件事:在循环中运行模型、读写你的文件、管理上下文、强制执行安全。就这些。这就是"瘦"。

反模式是胖 harness 配瘦技能。你见过:40+ 工具定义吃掉一半上下文窗口。2-5 秒 MCP 往返的上帝工具。把每个端点变成单独工具的 REST API 包装器。三倍的 token,三倍的延迟,三倍的失败率。

你想要的是快速且窄的专用工具。一个 Playwright CLI,每个浏览器操作 100 毫秒,而不是 15 秒截图-查找-点击-等待-读取的 Chrome MCP。那是 75 倍快。软件不必再珍贵了。构建你确切需要的,其他什么都不建。

3. 解析器

解析器是上下文的路由表。当任务类型 X 出现时,首先加载文档 Y。

技能告诉模型如何。解析器告诉它加载什么和何时加载。开发者更改提示。没有解析器,他们发布它。有解析器,模型首先读取 docs/EVALS.md——它说:运行评估套件,比较分数,如果准确率下降超过 2%,回滚并调查。开发者不知道评估套件存在。解析器在正确的时刻加载了正确的上下文。

Claude Code 有一个内置解析器。每个技能都有一个描述字段,模型自动将用户意图匹配到技能描述。你从来不必记住 /ship 存在。描述就是解析器

一个坦白:我的 CLAUDE.md 有 20,000 行。每个怪癖、每个模式、我遇到的每个教训。完全荒谬。模型的注意力下降。Claude Code 实际上告诉我要削减它。解决方案是大约 200 行——只是文档的指针。解析器在重要时加载正确的那一个。两万行的知识,按需访问,而不污染上下文窗口。

4. 潜在 vs 确定性

系统中的每一步都是其中之一,混淆它们是最常见的代理设计错误。

潜在空间是智能存在的地方。模型阅读、解释、决定。判断。综合。模式识别。

确定性是信任存在的地方。相同输入,相同输出。每次。SQL 查询。编译代码。算术。

LLM 可以安排 8 个人在餐桌上,考虑个性和社交动态。让它安排 800 个,它会产生一个看起来合理但完全错误的座位图。那是一个确定性问题——组合优化——被强迫进入潜在空间。最差的系统把错误的工作放在这条线的错误一侧。最好的系统对此无情。

5. Diarization

Diarization 是让 AI 对真正知识工作有用的步骤。模型阅读关于一个主题的所有内容,并写一个结构化档案——一页判断,从几十或几百份文件中提炼出来。

没有 SQL 查询产生这个。没有 RAG 管道产生这个。模型必须实际阅读,在脑中保持矛盾,注意什么改变了和何时改变,并综合结构化智能。这是数据库查找和分析师简报之间的区别。


架构

这五个概念组合成一个简单的三层架构。

  • 胖技能坐在顶层:markdown 过程,编码判断、过程和领域知识。90% 的价值在这里。
  • 瘦 CLI harness坐在中间:大约 200 行代码。JSON 进,文本出。默认只读。
  • 你的应用坐在底层:QueryDB、ReadDoc、Search、Timeline——确定性基础。

原则是方向性的。把智能向上推到技能中。把执行向下推到确定性工具中。保持 harness 。当你这样做时,每次对模型的改进自动改进每个技能,而确定性层保持完美可靠。


学习的系统

让我展示所有五个定义一起工作。不是在理论上——而是在我们在 YC 构建的一个实际系统中。

Chase Center。2026年7月。Startup School 的六千名创始人。每个人都有结构化申请、问卷答案、1:1 顾问聊天成绩单,以及公开信号:X 上的帖子、GitHub 提交、Claude Code 成绩单显示他们发货多快。

传统方法:15 人的项目团队阅读申请,做直觉判断,更新电子表格。200 个创始人时有效。6000 个时崩溃。没有人能在一个工作记忆中持有那么多档案,并注意到三个最适合 AI 代理基础设施队列的最佳候选人是拉各斯的 dev tools 创始人、新加坡的合规创始人和布鲁克林的 CLI 工具创始人——他们都在 1:1 聊天中用不同的词描述了相同的痛点。

模型可以。以下是方法。

充实。一个叫做 /enrich-founder 的技能拉取所有来源,运行充实,做 diarize,并突出创始人什么和他们实际构建什么之间的差距。确定性层处理 SQL 查找、GitHub 统计、演示 URL 的浏览器测试、社交信号拉取、CrustData 查询。一个 cron 每晚运行。六千个档案,永远新鲜。

Diarization 输出捕捉没有关键词搜索能找到的东西:

FOUNDER: Maria Santos COMPANY: Contrail (contrail.dev) SAYS: “Datadog for AI agents” ACTUALLY BUILDING: 80% 的提交在计费模块中。她在构建一个伪装成可观察性的 FinOps 工具。

那个差距——“说"与"实际构建”——需要阅读 GitHub 提交历史、申请和顾问成绩单,并同时记住所有三个。没有嵌入相似性搜索找到这个。没有关键词过滤找到它。模型必须阅读完整档案并做出判断。(这是放在潜在空间的完美决策!)

匹配。这就是 skill-as-method-call 闪耀的地方。同一个匹配技能的三个调用,三个完全不同的策略:

/match-breakout 接受 1,200 个创始人,按行业亲和力聚类,每房间 30 个。嵌入加确定性分配。

/match-lunch 接受 600 个,跨行业做偶然性匹配,每桌 8 个,不重复——LLM 发明主题,然后确定性算法分配座位。

/match-live 处理现在大楼里的任何人,最近邻嵌入,200 毫秒,1:1 配对,排除已经见过的人。

模型做出聚类算法永远无法做出的判断:“Santos 和 Oram 都是 AI 基础设施,但他们不是竞争对手——Santos 是成本归因,Oram 是编排。把他们放在同一个组。“或者:“Kim 申请为’开发者工具’,但他的 1:1 成绩单显示他在构建 SOC2 的合规自动化。把他移到 FinTech/RegTech。”

没有嵌入捕捉 Kim 重新分类。模型必须阅读整个档案。

学习循环。事件后,一个 /improve 技能阅读 NPS 调查,对中等响应做 diarize——不是坏的,“OK"的,系统几乎有效但没有的——并提取模式。然后它提出新规则并写回匹配技能:

当与会者说"AI 基础设施"但初创公司 80%+ 计费代码时:→ 分类为 FinTech,不是 AI Infra。 当同一组中两个与会者已经认识时:→ 惩罚接近度。优先新颖介绍。

这些规则被写回技能文件。下一次运行自动使用它们。技能重写了它自己。

7月活动:12% “OK” 评级。下一次活动:4%。技能文件学会了"OK"实际意味着什么,系统在没有任何人重写代码的情况下变得更好。

相同的模式到处转移:检索、阅读、diarize、计数、综合。然后:调查、调查、diarize、重写技能

如果你想知道 2026 年最有价值的循环是什么,就是这些。我们可以把它们应用到每个学科和知识工作的每个生活领域。


技能是永久升级

我发了一条给我的 OpenClaw 的指令,反响比我预期的更多:

你不允许做一次性工作。如果我要求你做某事,它是那种会再次发生的事,你必须:第一次手动做 3 到 10 个项目。给我看输出。如果我批准,将其编码为技能文件。如果它应该自动运行,放在 cron 上。测试:如果我必须要求你做某事两次,你就失败了。

一千个赞和两千五百个书签。人们以为这是提示工程技巧。它不是。它是我一直在描述的架构。你写的每个技能都是你系统的永久升级。它从不降级。它从不忘记。它在凌晨 3 点你睡觉时运行。当下一个模型发布时,每个技能立即变得更好——潜在步骤中的判断改善,而确定性步骤保持完美可靠。

这就是你如何获得 Yegge 的 100 倍。不是更聪明的模型。胖技能、瘦 harness,以及将一切编码的纪律。

系统复利。构建一次。永远运行。