1. Thin Harness, Fat Skills

1. Thin Harness, Fat Skills

Steve Yegge 说,使用 AI 编码代理的人“比今天使用 Cursor 和聊天的人生产力高 10x 到 100x,大致相当于 2005 年 Googlers 的 1000x 生产力。”

这是真实的数据。我亲眼见过,也亲身经历过。但当人们听到这个数字时,他们会去找错误的解释:更好的模型、更聪明的 Claude、更多参数。其实,2x 的人和 100x 的人用的是同样的模型。差异不在于智能,而在于架构——而且这个架构能写在一张索引卡上。

Harness(马具/外壳)才是产品

2026 年 3 月 31 日,Anthropic 不小心把 Claude Code 的全部源代码(51.2 万行)推送到了 npm 仓库。我读了它,它印证了我一直在 YC 教的一切:秘密不在于模型,而在于包裹模型的东西

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

这个包裹就叫 Harness。每个 AI 构建者都应该问的问题是:什么该放进 Harness,什么该留在外面?答案有一个特定的形状,我称之为薄 Harness,胖 Skills

五个核心定义

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

1. Skill 文件(技能文件)

Skill 文件是一个可复用的 Markdown 文档,它教模型如何做某件事,而不是具体做什么(具体任务由用户提供)。Skill 提供的是流程。0

关键洞见:Skill 文件就像方法调用。它接受参数。你用不同的参数调用它。同一个流程,根据传入的内容,会产生完全不同的能力。

举例,一个叫 /investigate 的 Skill,有七个步骤:划定数据集范围、构建时间线、对每份文档做 diarization、综合、双方论证、引用来源。它接受三个参数:TARGET、QUESTION 和 DATASET。

把它指向一位安全科学家和 210 万封发现邮件,你就得到了一位医学研究分析师,能判断举报人是否被噤声;指向一家空壳公司和 FEC 文件,你就得到了一位法务调查员,能追踪协调的政治献金。

同一个 Skill,同一个七步流程,同一个 Markdown 文件。Skill 描述的是判断流程,调用时提供的是世界

这不是提示工程,这是软件设计——用 Markdown 作为编程语言,用人类判断作为运行时。Markdown 其实比僵硬的源代码更完美地封装了能力,因为它用模型已经理解的语言描述了流程、判断和上下文。

2. Harness(马具)

Harness 是运行 LLM 的程序。它只做四件事:在循环中运行模型、读写你的文件、管理上下文、执行安全检查。这就是“薄”的含义。

反模式是胖 Harness + 薄 Skills:你见过那种 40+ 个工具定义吃掉一半上下文窗口的情况、神级工具需要 2-5 秒 MCP 往返、把每个 REST API 端点都包装成单独工具……结果是三倍 token、三倍延迟、三倍失败率。

你想要的是专为目的构建的、快速且窄的工具。比如一个 Playwright CLI,每个浏览器操作只需 100 毫秒,而不是一个需要 15 秒才能截图-查找-点击-等待-读取的 Chrome MCP。那是 75 倍的速度提升。现在软件不需要再那么“珍贵”了,只构建你真正需要的,其他什么都不要

3. Resolvers(解析器)

Resolver 是一个上下文路由表。当出现 X 类型任务时,就优先加载 Y 文档。

Skill 告诉模型怎么做,Resolver 告诉它什么时候加载什么。开发者改了一个提示,没有 Resolver 就直接上线了;有了 Resolver,模型会先读 docs/EVALS.md —— 上面写着:运行评估套件,对比分数,如果准确率下降超过 2%,就回滚并调查。开发者甚至不知道评估套件存在,是 Resolver 在正确时刻加载了正确的上下文。

Claude Code 有内置 Resolver。每个 Skill 都有 description 字段,模型会根据用户意图自动匹配 Skill。你永远不用记住 /ship 存在,description 就是 Resolver。

我曾经的 CLAUDE.md 有 2 万行,把我遇到的每个怪癖、模式、教训都塞进去,太荒谬了,模型注意力严重下降。Claude Code 直接告诉我该精简。解决办法是缩减到约 200 行——只保留指向文档的指针。Resolver 在需要时加载正确的文档。2 万行的知识,按需可用,且不污染上下文窗口。

4. Latent(潜空间) vs. Deterministic(确定性)

系统中的每一步要么是潜空间,要么是确定性,把它们搞混是 Agent 设计中最常见的错误。

潜空间是智能所在:模型阅读、解释、决策、判断、综合、模式识别。

确定性是信任所在:相同输入,永远相同输出——SQL 查询、编译后的代码、算术。

LLM 可以为 8 个人安排晚宴座位(考虑性格和社会动态),但如果让你安排 800 人,它会生成一个看似合理但完全错误的图表——这是组合优化问题,却被塞进了潜空间。最差的系统把错误的工作放到了错误的一侧;最好的系统对此极其无情。

5. Diarization(人物/事件分离与归纳)

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

没有 SQL 查询能做到这一点,没有 RAG 管道能做到这一点。模型必须真正阅读、同时持有矛盾、注意到什么在何时变化,并综合出结构化的智能。这就是数据库查找与分析师简报之间的区别。

架构

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

  • 顶层:胖 Skills —— 编码判断、流程和领域知识的 Markdown 过程,这里集中了 90% 的价值。
  • 中间:薄 CLI Harness —— 大约 200 行代码,JSON 输入,文本输出,默认只读。
  • 底层:你的应用 —— QueryDB、ReadDoc、Search、Timeline 等确定性基础。 原则是方向性的:把智能推到 Skills 里,把执行推到确定性工具里,保持 Harness 薄。这样,每当模型改进时,所有 Skill 都会自动受益,而确定性层始终保持完美可靠。

会学习的系统

让我用 YC 正在构建的实际系统,展示这五个定义如何协同工作(不是理论)。

2026 年 7 月,Chase Center,6000 名创始人参加 Startup School。每人都有结构化的申请表、问卷答案、1 对 1 顾问聊天记录,以及公开信号:X 帖子、GitHub 提交、Claude Code 记录(显示他们出货速度)。

传统做法:15 人的项目团队读申请,凭直觉做决定,更新 Excel。这在 200 人规模时有效,在 6000 人时就崩了。没人能把这么多 profile 放在工作记忆里,并发现“AI 代理基础设施” cohort 的三个最佳候选人是:拉各斯的开发工具创始人、新加坡的合规创始人、布鲁克林的 CLI 工具创始人——他们在 1 对 1 聊天中用不同的话描述了同一个痛点。

模型可以。方法如下:

富化(Enrichment):一个叫 /enrich-founder 的 Skill 拉取所有来源、运行富化、做 diarization,并突出创始人“说的”和“实际在做的”之间的差距。确定性层负责 SQL 查询、GitHub 统计、浏览器测试 demo URL、社交信号拉取、CrustData 查询。cron 每晚运行,6000 个 profile 始终保持新鲜。

Diarization 输出能抓住任何关键词搜索都找不到的东西: FOUNDER: Maria Santos

COMPANY: Contrail (contrail.dev)

SAYS: “Datadog for AI agents”

ACTUALLY BUILDING: 80% commits 在 billing 模块。

她在做一个伪装成可观测性的 FinOps 工具。

这个“说的 vs 实际在做的”差距,需要同时阅读 GitHub 提交历史、申请表和顾问记录,并把三者放在一起判断。没有嵌入相似性搜索能发现它,也没有关键词过滤能发现它。模型必须阅读完整 profile 并做出判断(这是放在潜空间里的完美决策!)。

匹配(Matching):Skill-as-method-call 在这里大放异彩。同一个 matching Skill 的三次调用,产生三种完全不同的策略:

  • /match-breakout:对 1200 人按领域亲和度聚类,每房间 30 人(嵌入 + 确定性分配)。
  • /match-lunch:对 600 人做跨领域惊喜匹配,每桌 8 人,无重复——LLM 发明主题,然后确定性算法分配座位。
  • /match-live:处理当前在大楼里的人,最近邻嵌入,200ms,1 对 1 配对,排除已见过的人。 模型还能做出聚类算法永远做不到的判断:“Santos 和 Oram 都是 AI infra,但他们不是竞争对手——Santos 做成本归因,Oram 做编排。把他们放在同一组。”或者:“Kim 申请时填的是‘开发者工具’,但他的 1 对 1 记录显示他在做 SOC2 合规自动化。把他移到 FinTech/RegTech。”

学习循环:活动结束后,一个 /improve Skill 阅读 NPS 调查,对“还行”(OK)而非差的反馈做 diarization,提取模式,然后提出新规则并写回 matching Skill:

  • 当参与者说“AI infrastructure”,但 startup 80%+ 是 billing 代码 → 分类为 FinTech,而非 AI Infra。
  • 当同一组的两个参与者已经认识 → 惩罚接近度,优先新介绍。 这些规则会写回 Skill 文件,下次运行自动生效。Skill 实现了自我重写。

7 月活动“OK”评分为 12%,下次活动降到 4%。Skill 文件学会了“OK”到底意味着什么,系统在没人重写代码的情况下变好了。

同样的模式可以转移到任何地方:检索、阅读、diarization、计数、综合。然后:调研、调查、diarization、重写 Skill。

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

Skills 是永久升级

我曾经发过一条给 OpenClaw 的指令,没想到引起很大共鸣:

“你不允许做一次性工作。如果我让你做某件事,而这件事以后还会再发生,你必须:第一次在 3 到 10 个条目上手动做一遍,给我看输出。如果我批准,就把它固化成一个 Skill 文件。如果它应该自动运行,就放进 cron。

测试标准:如果我不得不第二次问你同一件事,你就失败了。”

一千多赞和两千五百收藏。人们以为这是提示工程技巧,其实不是。这就是我描述的架构。你写的每一个 Skill 都是系统的永久升级。它永不退化、永不遗忘、能在你睡觉时凌晨 3 点运行。当下一个模型发布时,每个 Skill 都会立刻变好——潜空间的判断步骤提升,而确定性步骤保持完美可靠。

这就是你获得 Yegge 所说 100x 的方式。不是更聪明的模型,而是胖 Skills + 薄 Harness + 把一切都固化下来的纪律

这个系统会复利增长。一次构建,永远运行。0