文章探讨了提升AI编程效率的核心架构,提出“薄Harness,厚Skills”的理念。作者认为高生产力的关键不在于模型本身的智能,而在于如何通过Markdown定义的技能文件、上下文解析器以及区分潜空间判断与确定性执行的架构,构建出可复用且能持续进化的AI代理系统。
Steve Yegge 说,使用 AI coding Agent 的人比现在的工程师生产力高 10 倍到 100 倍,大约是 2005 年 Google 员工生产力的 1000 倍。
这是一个真实的数字。我亲眼见过。我亲身经历过。但当人们听到它时,他们会寻求错误的解释。更好的模型。更聪明的 Claude。更多的参数。生产力 2 倍的人和 100 倍的人使用的是相同的模型。区别不在于智能。而是在于架构——而且它能写在一张索引卡上。
2026 年 3 月 31 日,Anthropic 意外地将 Claude Code 的全部源代码发布到了 npm 注册表。512,000 行。我读过了。它证实了我一直在 YC 教导的一切:秘密不在于模型。而在于包装模型的东西。
实时仓库 Context。Prompt 缓存。专门构建的工具。Context 膨胀最小化。结构化会话记忆。并行子 Agent。这些都没有让模型变得更聪明。所有这些都在正确的时间给予模型正确的 Context,而不会让它淹没在噪音中。
那个包装被称为 Harness。每个 AI 构建者都应该问的问题是:什么该进入 Harness,什么该留在外面?答案有一个特定的形状。我称之为 thin harness, fat skills。
瓶颈从来不是模型的智能。模型已经知道如何推理、综合和编写代码。它们失败是因为它们不理解你的数据——你的模式、你的惯例、你问题的特定形状。五个定义可以解决这个问题。
技能文件是一个可重用的 Markdown 文档,教导模型如何做某事。不是做什么——那由用户提供。技能提供的是过程。
这是大多数人错过的一个关键见解:技能文件的工作方式就像方法调用。它接收参数。你使用不同的参数调用它。同样的过程根据你传入的内容产生截然不同的能力。
考虑一个名为 /investigate 的技能。它有七个步骤:确定数据集范围、建立时间线、为每份文件编写 Diarization、综合、辩论双方观点、引用来源。它接收三个参数:TARGET、QUESTION 和 DATASET。把它对准一位安全科学家和 210 万封披露邮件,你就会得到一位医疗研究分析师,判断举报人是否被噤声。把它对准一家壳公司和 FEC(联邦选举委员会)备案文件,你就会得到一位法证调查员,追踪协调的竞选捐款。
这不是 Prompt 工程。这是软件设计,使用 Markdown 作为编程语言,将人类判断作为运行时。Markdown 比僵化的源代码更完美地封装了能力,因为它用模型已经思考的语言描述了过程、判断和 Context。
Harness 是运行 LLM 的程序。它做四件事:循环运行模型、读写你的文件、管理 Context 并执行安全措施。就这些。这就是所谓的“薄(Thin)”。
反模式是带有薄技能的厚 Harness。你见过这种:40 多个工具定义吃掉了一半的 Context 窗口。带有 2 到 5 秒 MCP 往返的上帝工具(God-tools)。将每个端点都变成独立工具的 REST API 包装器。三倍的 Token,三倍的延迟,三倍的失败率。
相反,你想要的是快速且专注的专用工具。一个在 100 毫秒内完成每个浏览器操作的 Playwright CLI,而不是一个需要 15 秒来进行截图-查找-点击-等待-读取的 Chrome MCP。那要快 75 倍。只构建你需要的,别无他物。
Resolver 是 Context 的路由表。当出现 X 类型的任务时,首先加载文档 Y。
技能告诉模型如何做。Resolver 告诉它加载什么以及何时加载。开发人员更改了一个 Prompt。如果没有 Resolver,他们就直接发布了。有了 Resolver,模型会先读取 docs/EVALS.md——内容是:运行评估套件,比较得分,如果准确率下降超过 2%,则回退并调查。Resolver 在正确的时刻加载正确的 Context。
Claude Code 有一个内置的 Resolver。每个技能都有一个描述字段,模型会自动将用户意图与技能描述匹配。你永远不需要记住 /ship 的存在。描述就是 Resolver。
系统中的每一步要么是前者,要么是后者,混淆它们是 Agent 设计中最常见的错误。
一个 LLM 可以安排 8 个人在一张餐桌旁就座,并考虑到性格和社会动态。如果让它安排 800 人,它会幻想出一个看起来合理但完全错误的座位表。这是一个 Deterministic 问题——组合优化——却被强行塞入 Latent 空间。最好的系统在分离这两者方面是毫不留情的。
Diarization 是使 AI 在实际知识工作中发挥作用的关键步骤。模型阅读关于某个主题的所有内容,并编写一个结构化的档案——从数十或数百个文档中提炼出的一页纸的判断。
没有 SQL 查询或 RAG 流水线能产生这种结果。模型必须实际阅读、在脑海中处理矛盾、注意什么在什么时候发生了变化,并综合结构化的情报。这是数据库查询与分析简报之间的区别。
这五个概念构成了一个简单的三层架构。
这个原则是有方向性的。将智能向上推入技能。将执行向下推入 Deterministic 工具。保持 Harness 薄。当你这样做时,模型的每一次改进都会自动改进每一项技能,而 Deterministic 层则保持完全可靠。
让我向你展示这五个定义是如何在我们为 YC 创业学校(Startup School)构建的实际系统中协同工作的。
一个名为 /enrich-founder 的技能提取所有来源,运行富化,进行 Diarization,并突出创始人所说的与其正在实际构建的东西之间的差距。Deterministic 层处理 SQL 查询、GitHub 统计数据、浏览器测试和社交信号提取。
Diarization 输出捕获了任何关键词搜索都找不到的东西:
FOUNDER: Maria Santos
SAYS: "Datadog for AI agents"
ACTUALLY BUILDING: 80% of commits are in billing module. She's building a FinOps tool disguised as observability.
这种差距需要同时读取 GitHub 历史、申请书和导师谈话记录。模型在 Latent 空间中做出的判断,是任何 Embeddings 相似度搜索都无法找到的。
这是技能作为方法调用的闪光点。对同一个匹配技能的三次调用产生了不同的策略:
模型做出了聚类算法永远无法做出的判断调用:“Santos 和 Oram 都是 AI 基础设施,但他们不是竞争对手——Santos 是成本分摊,Oram 是编排。把他们放在同一组。”
活动结束后,一个 /improve 技能会阅读 NPS 调查,对平庸的反馈进行 Diarization,并提取模式。然后它提出新规则并将其写回匹配技能中:
When attendee says "AI infrastructure" but startup is 80%+ billing code: → Classify as FinTech, not AI Infra.
技能文件学到了“还可以”实际意味着什么,系统在没有人重写代码的情况下变得更好了。
我最近分享了一个我给 AI Agent 的指令:
You are not allowed to do one-off work. If I ask you to do something and it's the kind of thing that will need to happen again, you must: do it manually the first time on 3 to 10 items. Show me the output. If I approve, codify it into a skill file. If it should run automatically, put it on a cron. The test: if I have to ask you for something twice, you failed.
你编写的每一项技能都是对系统的永久升级。它永不退化。它永不遗忘。当下一个模型发布时,每一项技能都会立即变得更好——Latent 步骤中的判断力得到了提升,而 Deterministic 步骤则保持可靠。
这就是你获得 100 倍生产力的方式。不是靠更聪明的模型,而是靠厚技能、薄 Harness,以及将一切编纂成册的纪律。系统会产生复利。构建一次;永久运行。
- 原文链接: x.com/garrytan/status/20...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!