---
title: '07 使用 Agent Harness'
video_id: UPtmKh1vMN8
part: 7
---

> 章节 7 / 29 · [[00-总览|课程总览]] · 起始 [26:47](https://youtu.be/UPtmKh1vMN8?t=1607)


## 章节主旨

把 CLAUDE.md 当作包住 agent 的 [[Harness]](脚手架):跑几轮真实开发后把学到的经验回灌进 CLAUDE.md,再用 `/insights` 扫描全部历史会话提炼跨会话模式,最终沉淀出一份跨所有工作区生效的 global CLAUDE.md。

## 核心论点

1. **CLAUDE.md 是一个要迭代的 harness,不是一次写死**——跑 4-5 轮开发后把反复出现的经验编译进去。([[#1-claudemd-迭代循环-2706|→ 详解1]])
2. **`/insights` 让优化从「本项目」升到「跨所有会话」**——subagent 扫历史对话,找出你与 Claude 沟通中反复踩的坑。([[#2-insights-跨会话提炼-2729|→ 详解2]])
3. **global CLAUDE.md 三支柱:你是谁 / 推理偏好 / token 节约**——让每次对话都自带你的处境,避免默认按「最便宜」给方案。([[#3-global-claudemd-的三支柱-2818|→ 详解3]])
4. **insights 报告要经人蒸馏,不能整段粘**——压成高信息密度片段,并人工检查规则间是否自相矛盾。([[#4-蒸馏-insights-与-human-in-the-loop-3134|→ 详解4]])

## 知识点详解

### 1. CLAUDE.md 迭代循环 [27:06](https://youtu.be/UPtmKh1vMN8?t=1626)

**是什么。** 一个闭环:plan 一个 feature → 让 Claude 实现 → 从这次实现里挑出「本可以做得更好」的地方 → 把这些 learnings 编译起来更新 CLAUDE.md。

**为什么。** 单次实现里 agent 总会有些做得不够好的动作;不回收这些经验,下次还会重犯。把它们写进 CLAUDE.md,等于把 harness 收紧一格。

**怎么用。** 别每轮都改。作者的做法是攒到跑过 4-5 轮之后再做一次集中回灌——那时通常已积累出「一批」值得纳入的模式,一次性提炼进去比每次零敲碎打更划算。

### 2. `/insights` 跨会话提炼 [27:29](https://youtu.be/UPtmKh1vMN8?t=1649)

**是什么。** 一个 slash command,内部派一批 Subagent 去扫你全部的 Claude Code 历史对话(作者的例子:200 个会话、1849 条消息,大约覆盖近一个月),产出一份可分享的 HTML 报告。

**为什么。** 更新本地 CLAUDE.md 只优化当前项目;`/insights` 则评估你和 Claude 长期沟通里反复出现的模式,把优化对象从「本地」抬到「全局」。它耗时较长,可以边跑边干别的。

**怎么用。** 报告里有个「existing features to try」小节可直接抄进 CLAUDE.md,例如「用 Chrome DevTools MCP 前先杀掉残留 Chrome 进程、失败两次就停下问用户、别在反复失败的浏览器调用上烧 token」。它甚至能据你反复提的需求建议新建 skill。(注意:仅覆盖 Claude Code 的会话,桌面 App 对话未必纳入。)

### 3. global CLAUDE.md 的三支柱 [28:18](https://youtu.be/UPtmKh1vMN8?t=1698)

**是什么。** global CLAUDE.md 会插入到你在**所有**工作区、所有目录里与 Claude 的每一次对话开头,是最外层、永远在场的 System Prompt 上下文。

**为什么。** 没有这层上下文时,你问「X 的最佳方案是什么」,Claude 默认按「最便宜」推荐(0.2 美元 vs 5 美元)。但若它知道你「时间比钱贵、愿意花钱换时间」,给的方案就不一样。让它每次都懂你是谁,决策才对得上。

**怎么用。** 作者的 global CLAUDE.md 分三块:一是 profile(你是谁、目标、营收结构、团队构成等处境);二是高层推理规则与原则;三是 token 节约策略(如「先啃文档」)。三者合起来 = 你的处境 + 你的推理偏好 + 省 token 打法。

### 4. 蒸馏 insights 与 human-in-the-loop [31:34](https://youtu.be/UPtmKh1vMN8?t=1894)

**是什么。** 不要把 insights 报告整段粘进 global CLAUDE.md。作者把整份报告丢回 Claude,要求「distill 成一串高信息密度片段,既省 token 又能避开你常犯的错」。产出很凝练,例如「别过度解释/过度工程/加未请求的改动」「大范围改文件时用一次 write 而非多次 edit」。

**为什么。** 报告原文冗长,直接塞会浪费 token 且可能自相矛盾。压缩成 snippet 才既省上下文又保留价值。

**怎么用。** 关键是**人在环里**做两件事。其一,检查是否有两条规则直接打架——作者发现「别抓知名网站」与另一条冲突,当场删掉 [32:51](https://youtu.be/UPtmKh1vMN8?t=1971)。其二,补进「文档优先」规则:遇到不熟悉的平台先查 API 文档(搜「API documentation + 平台名」),读文档花的 token 能省下大量「用错了再试」的 token [33:02](https://youtu.be/UPtmKh1vMN8?t=1982)。改好后手动替换掉 `~/.claude/` 里的 global CLAUDE.md 即全局生效。

## 术语

- Agent Harness——包裹 agent 的脚手架/框架,这里具体指 CLAUDE.md 这层持续迭代的约束与上下文。
- global CLAUDE.md——放在 `~/.claude/` 的全局记忆文件,插入每次对话开头,跨所有工作区生效。
- `/insights`——派 subagent 扫描全部历史会话、提炼跨会话沟通模式并出 HTML 报告的 slash command。
- high information density snippet——把长报告压成的高信息密度短句,省 token 同时避坑。
- human-in-the-loop——人工介入环节,这里指审读蒸馏产物、剔除自相矛盾的规则。

## 自检问题

1. 为什么更新本地 CLAUDE.md 之外还需要跑 `/insights`?
   **答案**:本地 CLAUDE.md 只优化当前项目,`/insights` 派 subagent 扫全部历史会话,把「你和 Claude 长期反复踩的坑」提炼出来,优化对象从本地抬到全局。锚定详解2 [27:29](https://youtu.be/UPtmKh1vMN8?t=1649)。
2. global CLAUDE.md 该放哪三类内容?
   **答案**:①你是谁与你的目标/处境(profile);②高层推理规则与偏好;③token 节约策略。目的是让每次对话都自带你的处境,别默认按「最便宜」给方案。锚定详解3 [28:18](https://youtu.be/UPtmKh1vMN8?t=1698)。
3. 把 insights 报告写进 global CLAUDE.md 前,人必须做哪两步?
   **答案**:①把报告蒸馏成高信息密度 snippet(别整段粘);②人工检查规则间是否直接矛盾并删掉冲突项,再补「文档优先」等规则。锚定详解4 [32:51](https://youtu.be/UPtmKh1vMN8?t=1971)。