Skip to content

Thin Harness, Fat Skills:YC CEO Garry Tan 的 AI 架构心法

封面

2026年4月11日,Y Combinator CEO Garry Tan 在 X 上发布了一篇长文,阅读量近百万。Steve Yegge 说使用 AI 编程 Agent 的人效率是只用 Cursor 聊天的人的 10-100 倍。Garry 的解释是:差距不在模型,而在架构——而且这种架构简单到可以写在一张卡片上。

写在一张卡片上的架构


我的理解:三点补充

先说我读完后的几点思考,再附原文翻译。

1. 这不是新概念,但 Garry 给了它最好的名字

"把智能推到 skill、把执行推到工具、让中间层尽量薄"——这个设计哲学在软件工程里有很多前身:Unix 哲学的"做一件事并做好"、微内核 vs 宏内核之争、甚至 React 的"状态上提"。Garry 的贡献不在于发明了新范式,而在于给 AI Agent 架构找到了一个足够简洁、足够可操作的表达方式——一个公式、五个定义、三层架构。能被写在一张卡片上的东西,才有机会成为行业共识。

2. 真正的难点不在 Thin Harness,而在 Fat Skills

Garry 文中花了大量篇幅讲 harness 应该多薄、MCP 有多慢、工具定义有多冗余。这些都对。但在实践中,我发现写出好的 skill 文件远比削薄 harness 困难得多

一个好的 skill 必须同时做到:足够具体(让模型不会走偏)、足够抽象(让它可以被不同参数复用)、足够健壮(覆盖常见边界情况)。这其实就是软件设计中"好的接口"问题的翻版。而且因为 skill 用的是自然语言而非编程语言,调试和迭代的反馈循环比传统代码要慢得多——你无法 print 一个 skill 的中间状态。

所以 Fat Skills 听起来简单,做起来是一项需要长期积累的手艺。Garry 自己也承认,他在 YC 的系统经历了持续的迭代和学习循环才达到目前的效果。

3. 最大的启示:AI 时代的"能力资产"正在从代码转向 Skill

Garry 说"每个 skill 都是对系统的永久升级"。这句话的深层含义是:在 AI 时代,你最有价值的资产不再是代码库,而是 skill 库。

代码会因为框架更新、API 变化而贬值。但一个描述"如何调查一家公司是否存在财务造假"的 skill,只要调查的逻辑本身不变,它就永远有效——而且会随着模型能力的提升自动变得更强。这是一种新型的认知复利:你投入时间写下的判断流程,会在每次模型升级时免费获得增益。

这也意味着,未来团队之间的竞争,可能不在于谁有更好的模型(模型越来越同质化),而在于谁积累了更深、更厚的 skill 库——谁把更多的领域知识、判断标准和工作流程沉淀成了可复用、可迭代的 markdown 文件。

模型是电,skill 是电器。电在涨价,但真正决定你能做什么的,是你的电器有多好。


以下为原文翻译

原文作者:Garry Tan。原文发布于 X,2026.4.11。


Harness 才是产品本身

2026 年 3 月 31 日,Anthropic 一次意外,把 Claude Code 的完整源代码发布到了 npm 上——总计 51.2 万行。我通读了一遍。这验证了我一直在 YC 讲的那件事:真正的秘密不在模型,而在"包裹模型的那一层"。

实时的代码仓库上下文、Prompt 缓存、为特定任务设计的工具、尽可能压缩冗余上下文、结构化的会话记忆、并行运行的子代理——这些都不会让模型变得更聪明。但它们能在正确的时间给模型正确的上下文,同时避免被无关信息淹没。

这一层"包裹",就叫做 harness(运行框架)。而所有 AI 构建者真正应该问的问题是:哪些东西应该放进 harness,哪些应该留在外面?

这个问题其实有一个非常具体的答案——我称之为:Thin Harness, Fat Skills


五个定义

五个核心定义

瓶颈从来不在模型的智能上。模型早就知道如何推理、综合信息、写代码。它们之所以会失败,是因为不理解你的数据——你的 schema、你的约定、你这个问题具体是什么形状。下面五个定义,就是为了解决这个问题。

1. Skill File(技能文件)

技能文件,是一份可复用的 markdown 文档,用来教模型"怎么做一件事"。注意,不是告诉它"要做什么"——那部分由用户提供。技能文件提供的是过程

大多数人忽略的关键点在于:技能文件其实就像一次方法调用。它可以接收参数。同一套流程,因为传入参数不同,就能展现出截然不同的能力。

举个例子,有一个叫 /investigate 的技能,包含七个步骤:界定数据范围、搭建时间线、为每份文档做 diarize、综合归纳、从正反两面论证、引用来源。它接收三个参数:TARGETQUESTIONDATASET

  • 如果你把它指向一位安全科学家和 210 万封取证邮件,它就变成一个医学研究分析员,去判断一位吹哨人是否遭到了压制。
  • 如果你把它指向一家壳公司和联邦选举委员会的申报文件,它又变成一名法务取证调查员,去追踪协同行动式的政治捐款。

还是同一个技能,同样七个步骤,同一份 markdown 文件。技能描述的是一种判断流程,而真正把它落到现实世界里的,是调用时传入的参数。

这不是 prompt engineering,而是软件设计:只不过用 markdown 当编程语言,用人的判断力当运行时环境。

2. Harness(运行框架)

Harness 就是驱动 LLM 运行的那层程序。它只做四件事:让模型在循环中运行、读写你的文件、管理上下文,以及执行安全约束。

就这些。这就是 Thin。

反面模式则是:Fat Harness, Thin Skills。你一定见过这种东西:40 多个工具定义,光说明就吃掉一半上下文窗口;一个全能 God-tool,跑一趟 MCP 来回要 2 到 5 秒;把 REST API 的每个 endpoint 都包成单独工具。结果就是,token 用量变成三倍,延迟变成三倍,失败率也变成三倍。

真正理想的做法,是使用为目的而生、快速且窄功能的工具。比如一个 Playwright CLI,每个浏览器操作只花 100 毫秒;而不是一个 Chrome MCP,做一次 screenshot → find → click → wait → read 要 15 秒。前者快了 75 倍

3. Resolver(解析器)

Resolver 本质上就是一张上下文路由表。当任务类型 X 出现时,优先加载文档 Y。Skills 告诉模型"怎么做";Resolvers 告诉模型"什么时候该加载什么"。

比如,一个开发者改了某条 prompt。没有 resolver 的时候,他可能改完就直接发版了。有 resolver 的时候,模型会先去读 docs/EVALS.md,里面写着:先跑评估套件,对比前后得分;如果准确率下降超过 2%,就回滚并排查原因。这个开发者原本甚至不知道还有评估套件的存在。是 resolver 在正确的时刻,把正确的上下文加载了进来。

坦白说,我以前的 CLAUDE.md 足足有 2 万行。所有怪癖、所有模式、所有经验教训,统统塞了进去。荒唐至极。模型的注意力质量明显下降。最后的修复方案,大概只有 200 行——只保留若干文档指针。真正需要哪份文档,就让 resolver 在关键时刻去加载。这样一来,2 万行知识仍然可以随取随用,却不会污染上下文窗口。

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

系统里的每一步,不是属于这一类,就是属于那一类。把这两者混淆,是 Agent 设计里最常见的错误。

  • Latent space(潜在空间):智能所在的地方。模型在这里阅读、理解、判断、决策。处理的是判断、综合、模式识别。
  • Deterministic(确定性):可信性所在的地方。相同输入,永远得到相同输出。SQL 查询、编译后的代码、算术运算,都属于这一侧。

一个 LLM 可以帮你给 8 个人安排晚宴座位,同时考虑每个人的性格和社交关系。但你要它给 800 个人排座位,它就会一本正经地胡编出一张"看起来很合理、实际上完全错误"的座位表。因为那已经不是潜在空间该处理的问题了——那是一个被硬塞进 latent space 的确定性问题。

最糟糕的系统,总是在这条分界线两边把工作放错地方。最好的系统,则会非常冷酷地划清边界。

5. Diarization(文档归整 / 主题画像)

Diarization 这一步,才是真正让 AI 对现实知识工作产生价值的关键。

它的意思是:模型把一个主题相关的所有材料都读一遍,然后写出一份结构化画像。用一页纸,把几十份甚至上百份文档中的判断浓缩出来。

这不是 SQL 查询能产出的东西,也不是 RAG 流水线能产出的东西。模型必须真的去读、把相互矛盾的信息同时放在脑子里、注意到哪些东西发生了变化、什么时候发生了变化,然后把这些内容综合成结构化的 intelligence。

这就是数据库查询和分析师简报之间的区别。


三层架构

这五个概念,可以组合成一个非常简单的三层架构:

  • 最上层是 Fat Skills:用 markdown 写成的流程,承载判断、方法论和领域知识。90% 的价值都在这一层。
  • 中间是 Thin CLI Harness:大约 200 行代码,输入 JSON,输出文本,默认只读。
  • 最底层是确定性基础设施:QueryDB、ReadDoc、Search、Timeline——这些是确定性工具。

核心原则是有方向的:把智能尽量往上推到 skills;把执行尽量往下压到确定性工具;让 harness 保持轻薄。

这样做的结果是:每当模型能力提升,所有技能都会自动变强;而底层的确定性系统,始终保持稳定可靠。


YC 的真实案例:一个会学习的系统

YC 学习环系统

2026 年 7 月,Chase Center。Startup School 有 6000 名创始人参加。每个人都有结构化申请材料、问卷回答、与导师 1:1 对话的转录,以及公开信号:X 上的发帖、GitHub 提交记录、Claude Code 的使用记录。

传统做法:15 人的项目团队逐份阅读申请,凭直觉判断。200 人规模时还能运转,6000 人时彻底失效。

模型可以做到。方法如下:

信息增强(Enrichment):一个 /enrich-founder 技能拉取所有数据源,做信息增强和 diarization,标出"创始人说的"和"实际在做的"之间的差异。底层确定性系统负责 SQL 查询、GitHub 数据、Demo URL 的浏览器测试等。一个定时任务每天运行,6000 个创始人画像始终保持最新。

匹配(Matching):同一个匹配技能,调用三次,产生完全不同的策略——分组讨论(按领域聚类,每组 30 人)、午餐匹配(跨领域偶然相遇,每桌 8 人)、现场实时匹配(200ms 内完成 1 对 1 配对)。而模型还能做出传统聚类算法无法完成的判断:"Santos 和 Oram 都属于 AI 基础设施,但不是竞争关系——Santos 做成本归因,Oram 做编排。应该放在同一组。"

学习循环(Learning Loop):活动结束后,一个 /improve 技能读取 NPS 调研结果,对那些"差一点就好"的反馈做 diarization,提取模式,然后把新规则写回 skill 文件。下一次运行时自动生效。7 月活动"还行"评分占 12%;下一场降到 4%。技能在自我改写。系统在没有人重写代码的情况下变得更好。


技能是永久升级

你写下的每一个 skill,都是对系统的永久升级。它不会退化,不会遗忘。它会在凌晨三点自动运行。而当下一代模型发布时,所有 skill 会瞬间变强——latent 部分的判断能力提升,而 deterministic 部分依然稳定可靠。

这就是 Yegge 所说的 100 倍效率的来源。

不是更聪明的模型,而是:Thin Harness, Fat Skills,以及把一切固化为能力的纪律。

系统会复利增长。搭建一次,长期运行。


原文来源:Garry Tan on X(2026.4.11,阅读量近百万)解读参考:yage.ai 五概念拆解Garry Tan 的开源项目:GBrain