{
  "slug": "harness-lai-xinlu",
  "url": "https://kelewrites.com/posts/harness-lai-xinlu/",
  "title": "对谈来新璐：Claude Code 源码泄露之后，真正值得学的是什么",
  "subtitle": "一个写了五万星教程的工程师，把 Harness 从概念拆回工程现场",
  "summary": "来新璐是 GitHub 五万星教程 Learn Claude Code 的作者。他用「执行 / 上下文 / 编排」三层重新切开 Harness，并给出两条判断好坏的硬尺子——是否与模型当下的运行自洽、是否与模型未来的进步正交。源码泄露带出的真正惊喜不是结构，而是 Claude Code 的双 hook 记忆与压缩交接策略。",
  "date": "2026-05-06",
  "updated": "",
  "tags": [
    "AI",
    "Agent",
    "工程方法"
  ],
  "series": "",
  "source": {
    "title": "【十字路口】探秘 Claude Code，搞懂 Agent Harness｜对谈来新璐【视频播客】",
    "url": "https://www.bilibili.com/video/BV1Ji9aB4Eu2/",
    "date": "2026-05-06"
  },
  "ai": {
    "summary": "来新璐是 GitHub 五万星教程 Learn Claude Code 的作者。他用「执行 / 上下文 / 编排」三层重新切开 Harness，并给出两条判断好坏的硬尺子——是否与模型当下的运行自洽、是否与模型未来的进步正交。源码泄露带出的真正惊喜不是结构，而是 Claude Code 的双 hook 记忆与压缩交接策略。",
    "takeaways": [
      "来新璐是 GitHub 五万星教程 Learn Claude Code 的作者。他用「执行 / 上下文 / 编排」三层重新切开 Harness，并给出两条判断好坏的硬尺子——是否与模型当下的运行自洽、是否与模型未来的进步正交。源码泄露带出的真正惊喜不是结构，而是 Claude Code 的双 hook 记忆与压缩交接策略。",
      "一、三层切分：来新璐版的 Harness 解剖",
      "二、两把硬尺子：怎么判断一个 Harness 好不好",
      "三、源码泄露真正值钱的细节"
    ],
    "audience": [
      "正在做 AI Agent / 工程实践的工程师",
      "关心工程落地与系统设计的人"
    ],
    "quote": "一句话总结：来新璐用「执行 / 上下文 / 编排」三层切开 Harness，给出两条判断好坏的硬尺子——与模型当下运行自洽、与模型未来进步正交；同时还原了 Claude Code 源码里真正值钱的细节：双 hook 记忆、压缩交接、CLI 压过 MCP 的语料密度。",
    "questions": [
      "这篇文章的核心结论是什么？",
      "三层切分：来新璐版的 Harness 解剖到底讲了什么？",
      "两把硬尺子：怎么判断一个 Harness 好不好？",
      "源码泄露真正值钱的细节到底讲了什么？"
    ],
    "citation": {
      "title": "对谈来新璐：Claude Code 源码泄露之后，真正值得学的是什么",
      "conclusion": "来新璐是 GitHub 五万星教程 Learn Claude Code 的作者。他用「执行 / 上下文 / 编排」三层重新切开 Harness，并给出两条判断好坏的硬尺子——是否与模型当下的运行自洽、是否与模型未来的进步正交。源码泄露带出的真正惊喜不是结构，而是 Claude Code 的双 hook 记忆与压缩交接策略。",
      "points": [
        "一、三层切分：来新璐版的 Harness 解剖",
        "二、两把硬尺子：怎么判断一个 Harness 好不好",
        "三、源码泄露真正值钱的细节"
      ],
      "quote": "一句话总结：来新璐用「执行 / 上下文 / 编排」三层切开 Harness，给出两条判断好坏的硬尺子——与模型当下运行自洽、与模型未来进步正交；同时还原了 Claude Code 源码里真正值钱的细节：双 hook 记忆、压缩交接、CLI 压过 MCP 的语料密度。",
      "url": "https://kelewrites.com/posts/harness-lai-xinlu/",
      "attribution": "kele · Article Share"
    }
  },
  "headings": [
    {
      "depth": 2,
      "text": "开场"
    },
    {
      "depth": 2,
      "text": "金字塔总览"
    },
    {
      "depth": 2,
      "text": "一、三层切分：来新璐版的 Harness 解剖"
    },
    {
      "depth": 3,
      "text": "1.1 执行能力层：给模型配 Action"
    },
    {
      "depth": 3,
      "text": "1.2 上下文环境层：模型的工作空间"
    },
    {
      "depth": 3,
      "text": "1.3 编排治理层：Agent 之间的组织架构"
    },
    {
      "depth": 2,
      "text": "二、两把硬尺子：怎么判断一个 Harness 好不好"
    },
    {
      "depth": 3,
      "text": "2.1 第一把尺子：与模型当下的运行自洽"
    },
    {
      "depth": 3,
      "text": "2.2 第二把尺子：与模型未来的进步正交"
    },
    {
      "depth": 3,
      "text": "2.3 用这两把尺子重新看派系之争"
    },
    {
      "depth": 2,
      "text": "三、源码泄露真正值钱的细节"
    },
    {
      "depth": 3,
      "text": "3.1 双 hook 的记忆机制：实时 + 做梦"
    },
    {
      "depth": 3,
      "text": "3.2 压缩交接：装满之后怎么传棒"
    },
    {
      "depth": 3,
      "text": "3.3 模型才是 Agent"
    },
    {
      "depth": 2,
      "text": "一页速览"
    },
    {
      "depth": 2,
      "text": "一句话收束"
    }
  ],
  "text": "> **一句话总结**：来新璐用「执行 / 上下文 / 编排」三层切开 Harness，给出两条判断好坏的硬尺子——与模型当下运行自洽、与模型未来进步正交；同时还原了 Claude Code 源码里真正值钱的细节：双 hook 记忆、压缩交接、CLI 压过 MCP 的语料密度。\n\n---\n\n## 开场\n\nClaude Code 的源代码被泄露之后，朋友圈一夜冒出几十篇拆解文。Anthropic 紧接着又发了 Managed Agents，把自家这套 Harness 直接打包给开发者。两件事撞到一起，问题就变得尖锐：开发者还要不要自己搭 Harness？产品经理还要不要懂这层底层细节？\n\n这一期十字路口的对谈嘉宾是来新璐，C2AI 的创始人。九个月前他把 Claude Code 的设计拆成一份开源教程 `Learn Claude Code`，到对谈这一刻已经攒下五万颗星。他自己又在做名字叫 1KB Computer 的工具链——给 Agent 配一台跑在内存里的虚拟 UNIX。\n\n聊 Harness 的人很多，但能同时站在「教程作者 / Infra 创业者 / Anthropic 源码阅读者」三个视角的人不多。所以他的拆法值得听。\n\n那么 Claude Code 这次泄露真正值钱的是什么？开发者该用什么尺子判断一个 Harness 的好坏？答案是一句话：**Harness 不是工具集，是模型的延伸；判断它好不好，看的不是层数多少，而是它是否与模型自洽、是否随模型变强而变强**。下面分三层展开。\n\n## 金字塔总览\n\n---\n\n## 一、三层切分：来新璐版的 Harness 解剖\n\n来新璐对 Harness 的拆法很直接：**模型以外都是 Harness**。如果把模型比作聪明但没手脚的大脑，Harness 就是让它能动起来的机甲。\n\n在这副机甲里，他切了三层。\n\n### 1.1 执行能力层：给模型配 Action\n\n最底层，就是工具——文件增删读写、Bash 命令、浏览器操作、语言解释器。绝大多数 Agent 任务，无论是 coding 还是 deep research，靠这三组工具就能覆盖 95% 的场景。\n\n但这一层有个反直觉的坑：**工具的设计必须紧贴 Agent 的角色，而不是配得越多越好**。他举的例子是测试 Agent——绝不能给它写代码的权限，否则它会一边测一边偷偷改代码，最后所有测试都「奇迹般」通过了。\n\n### 1.2 上下文环境层：模型的工作空间\n\n第二层是上下文——系统提示词、Skills、Memory、当前工作目录、依赖信息、git 状态。这层有个常被忽略的细节：**模型的上下文窗口不是无限的**，长任务必然会装满。\n\n装满之后呢？需要把当前进度写成文档，让下一个 Agent 接力。「你以为还是那个 Agent 在工作，其实已经是一个新的模型窗口，再装上一些初始化上下文，让它继续上一个窗口里在进行的工作。」每一次窗口切换，本质上都是一次接力赛跑。\n\n### 1.3 编排治理层：Agent 之间的组织架构\n\n第三层处理的是多 Agent 协作。一旦你面对的不是一个 Agent，而是一百个，问题就从「怎么用工具」变成了「怎么管员工」——按什么组织架构协作、按什么顺序传递、每个角色给什么权限。\n\n来新璐用「两周 100 个 Agent 从零造一个 C 编译器」当例子串这三层：底层得有文件增删读写让模型能写代码；中间层得让每个 Agent 知道环境、能在窗口爆满时把状态委托给下一个；顶层得管住测试 Agent 不去改代码、并行 Agent 之间不打架。\n\n> **金句**：你以为还是那个 Agent 在工作，其实是一场新的接力赛——上一棒交什么、不交什么，下一棒读什么、按需查什么，里面全是 trade-off。\n\n---\n\n## 二、两把硬尺子：怎么判断一个 Harness 好不好\n\n这是来新璐这次给出的最锋利的两句判断。短，但很刀子。\n\n### 2.1 第一把尺子：与模型当下的运行自洽\n\n最典型的反例是「为了优化上下文而瞎管理」——你以为自己在做精细化，其实在破坏 KV cache。\n\n「过去一到两年，我发现很多开发者非常关心上下文的管理，其实最好的管理就是不要做管理。」他这句话杀伤力很强：你随手扔掉前面几轮、随意改写系统提示词，就直接让模型 prompt caching 失效，下一次推理整个上下文要从头重算。\n\n自洽，意味着你的 Harness 要顺着模型的工作机理，而不是逆着它走。\n\n### 2.2 第二把尺子：与模型未来的进步正交\n\n很多 Harness 设计当年是合理的——比如 LangGraph 那种「一个 node 一个 node 串 prompt」的状态图。原因是当时模型能力弱，只能做几轮简单工具调用就停下来，必须靠人在外面写 if/else 给它兜底。\n\n但模型变强之后，这种结构就变成枷锁。**模型越强，你的 Harness 反而越束缚模型**——这就是不正交。\n\n正交的 Harness 应该是这样：模型变强，Agent 整体能力跟着变强，而不是需要你不断推倒重来。\n\n> **金句**：好的 Harness 有两条命脉——一条往下扎到模型当下怎么跑，一条往上对齐模型未来怎么变。两条都断的，叫\"过时的 Harness\"。\n\n### 2.3 用这两把尺子重新看派系之争\n\n带着这两把尺子回头看，**「Bash is all you need」凭什么压过 MCP**就变得清楚了。\n\nMCP 是 2024 年才提出的新协议，预训练语料里占比可能不到 0.01%。Bash / UNIX 命令出现于 1971 年，预训练里有几十亿条样本。来新璐自己换过——一开始装 GitHub MCP 干活，后来发现换成 `gh` CLI，任务成功率高出一大截。\n\n「我们不应该再造更多的轮子，不应该做更多的协议。」回到 UNIX，回到 LLM 训得最熟的那套自洽哲学——这两把尺子同时支持这个选择。\n\n---\n\n## 三、源码泄露真正值钱的细节\n\n聊到 Claude Code 源码这一段，来新璐讲了几个外面拆解文里很少展开的工程细节。\n\n### 3.1 双 hook 的记忆机制：实时 + 做梦\n\nClaude Code 里 Memory 是靠两套机制更新的，不是一套。\n\n**第一套是实时**：每次 Agent 完成一轮回复，会触发一个叫 `stop` 的 hook，hook 上挂了一个 fork agent——它会复用之前的 KV cache 来判断\"这一轮里有什么信息值得保存\"，写进对应的 Markdown。\n\n**第二套是做梦**：每隔大约一天、积累到至少 5 个 session 时触发一次。后台 Agent 把最近这些 session 重放一遍，做更深一层的整理——提取信息、纠正过时事实、合并冗余记忆。\n\n「就像我们做梦一样，做重放，做信息整理。」这套设计很有趣的一点是：所有 Markdown 文件本身都是结构化的——前三行 YAML frontmatter、写好 description，加载时只先读文件名和描述，按需展开正文。和 Skills 走的是同一套哲学。\n\n### 3.2 压缩交接：装满之后怎么传棒\n\n256K 的上下文其实能装很多东西。真正的难题不是窗口够不够大，是**装满之后，下一棒怎么接**。\n\nClaude Code 的做法是分级的：\n**阈值压缩**：到 0.8 时就主动留 20% 空间，写交接文档——目前进度、用户的整体目标、下一步要做什么。\n**垃圾清理**：识别哪些工具 output 已经不需要、可以剔除，腾出几十 K 空间继续干。\n**按需查看**：哪些信息全文带过去、哪些只留索引让下一个 Agent 自己去查。\n\n每一条都是 trade-off。这是 Anthropic 在工程兜底上花最多功夫的地方，也是后入场的同行最容易抄漏的部分。\n\n### 3.3 模型才是 Agent\n\n读完源码，来新璐反复强调一个直觉：**Claude Code 的所有设计，都是「给模型更多 context、更多 action，几乎不做 control」**。\n\n「在 0 control，最多就是限制你调工具的时候，有些工具不能调。」之前那些把 Agent 拆成几十个 prompt node 的做法——本质是程序员替模型在每一步做决策。Claude Code 完全反过来：把决策权全部还给模型，自己只负责把环境、工具、上下文备齐。\n\n这跟 Manus 一年多前就在讲的「less control, more context」对得上。之前没想通为什么的人，换到模型的视角就清楚了：模型是自回归的，你每多一层 control，就多一道写死的栅栏挡在它前面。\n\n> **金句**：所有\"奇怪的最佳实践\"，只要你换到模型的视角，就立刻 make sense——它原本就是从模型怎么跑反推出来的。\n\n---\n\n## 一页速览\n\n| 章节 | 关键观点 | 一句话核心 |\n\n| **一、三层切分** | 执行 / 上下文 / 编排 | Harness 是机甲，模型是大脑——三层都为模型服务 |\n| 1.1 执行层 | 工具配多不如配准 | 工具权限要紧贴 Agent 角色，别给测试 Agent 写代码权限 |\n| 1.2 上下文层 | 窗口满了就接力 | 256K 不是无限——满了写交接、下一棒读文档 |\n| 1.3 编排层 | 100 个 Agent 等于 100 个员工 | 组织架构 + 权限治理才能让多 Agent 不打架 |\n| **二、两把尺子** | 自洽 + 正交 | 好 Harness 要顺着模型当下跑，也要跟得上模型未来变 |\n| 2.1 自洽 | 别瞎管理上下文 | 最好的上下文管理是不管理——别动 KV cache |\n| 2.2 正交 | 模型越强 Harness 越好用 | LangGraph 那种状态图正在变成枷锁 |\n| 2.3 派系之争 | Bash > MCP | 几十亿条 UNIX 语料 vs 不到 0.01% 的 MCP 语料 |\n| **三、源码细节** | 真正值钱的不是结构 | 双 hook 记忆 + 压缩交接 + 模型才是 Agent |\n| 3.1 记忆 | stop hook + auto dream | 实时写一次、定期做梦再整理一次 |\n| 3.2 压缩 | 阈值 + 清理 + 按需 | 装满前 20% 就该写交接，不是装爆才补救 |\n| 3.3 哲学 | more context, zero control | 决策权交还给模型，自己只负责备齐环境 |\n\n---\n\n## 一句话收束\n\n> **Harness 设计不需要你比模型聪明——它只需要你比模型更耐心地准备好它需要的一切，然后让开。**"
}
