一句话:Harness 是 Loop 的地基。一个坏 harness 上的好 loop,是大规模生产垃圾的最快方法。14 步从单 Agent 搭到自我进化系统。
作者:Codez (@0xCodez) · 2026-06-16 · 原文:X 长文 互动:likes 564 / retweets 87 / bookmarks 993 / views 84,721 与既存文档关系:
本文定位:从 0 到 self-improving 的具体路径与顺序。
1
Self-Improving System = Harness + Loop + Memory(且顺序不能反)
关键反直觉:
| 层级 | 性质 | 关键组件 | 错放代价 |
|---|---|---|---|
| Harness | 静态配置 | 模型/工具/权限/上下文 | 一切上层都崩 |
| Loop | 定时调起 | /loop + /goal |
烂 harness 上跑得越快越烂 |
| Self-Improving | 复利闭环 | Loop + Memory + Reviewer | 没有它就跑一次忘一次 |
实操分类原则:
rules/| 步 | 主题 | 一句话 |
|---|---|---|
| 01 | Harness 定义 | 单一 Agent 运行所处的环境 = 模型 + 工具 + 权限 + 上下文 |
| 02 | 目录结构 | 全部装在 .claude/ 一个目录里,目录即文档 |
| 03 | 三层关系 | Harness/Loop/System 三层不混 |
| 04 | 默认 harness | 装好 Claude Code 就是空 harness,one-off 任务够用,重复任务必崩 |
| 步 | 主题 | 一句话 |
|---|---|---|
| 05 | CLAUDE.md | 限 500 tokens 内,只放事实;procedures 挪 skills;单文件夹规则挪 rules/ |
| 06 | settings.json | 预先放行安全操作、禁掉危险操作;判断标准:弄错了多难撤销? |
| 07 | Subagents | 核心价值是”反自我评分”—— reviewer 子 agent 用新 context 窗口挑刺 |
| 08 | Skills | 触发器 = 反复把同一段指令粘进新对话。Skills 是 harness 进化的可复用单位 |
| 09 | Hooks | CLAUDE.md 是建议,hooks 是强制(exit 2 可阻断)。两类最值钱:PreToolUse 安全门 + PostToolUse 格式化 |
| 步 | 主题 | 一句话 |
|---|---|---|
| 10 | Add a loop | /loop 30m /goal + 独立 grader 判定 done |
| 11 | Dynamic workflow | 复杂任务用 Claude 自己写 JS harness(agent()/parallel()/pipeline());workflow 是指挥家,harness 是管弦乐队 |
| 12 | Add memory | agent-memory/STATE.md 三段式:verified facts / lessons learned / last session |
| 13 | Close the loop | Output → reviewer(07)→ memory(12)→ 蒸馏到 skills(08)→ 下次跑更聪明 |
| 14 | Ship it | 打包成 plugin 团队复用;Ship 前要扫 secrets 和过宽权限 |
一次手动跑通 → 加 context/permission → 加 reviewer subagent → 加 memory → 最后才上 loop。
错位代价:loop 跑得越勤,harness 的问题放大得越快。
.claude/ 目录速查1
2
3
4
5
6
7
8
.claude/
├─ CLAUDE.md # 事实,每次 session 必读(≤500 tokens)
├─ settings.json # 权限、模型、hooks
├─ .mcp.json # 外部工具连接
├─ rules/ # 路径级行为(tests.md / python-types.md)
├─ agents/ # 子 agent 定义(reviewer.md / eval-runner.md)
├─ skills/ # 可复用流程(pr-checklist/SKILL.md)
└─ agent-memory/ # 跨 run 记忆(STATE.md)
判别原则:能讲清每个文件为什么存在;讲不清的,删。
1
2
3
4
5
6
7
{
"model": "claude-sonnet-4-6",
"permissions": {
"autoApprove": ["Read(*)", "Grep(*)", "Bash(npm test)", "Bash(git status)"],
"deny": ["Bash(rm -rf*)", "Bash(git push*)", "Edit(.env*)", "Edit(secrets/*)"]
}
}
放行/禁止判断标准:弄错了多难撤销?
1
2
3
4
5
6
7
8
9
10
11
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"command": "./.claude/hooks/block-dangerous.sh"
// exit 2 = 阻断,模型无法"礼貌忽略"
}],
"PostToolUse": [{
"matcher": "Edit|Write",
"command": "prettier --write \"$CLAUDE_FILE_PATH\""
}]
}
反模式:20 个 hooks。一个好 harness 只有 1-2 个锋利 hook;判断题留给模型,强制题交给 hooks。
1
2
3
4
5
6
7
8
9
10
11
12
# Project memory
## Verified facts # stop guessing about these
- prc is in dollars, not cents (checked via SELECT MIN/MAX)
- auth middleware order: rate_limit -> jwt -> rbac
## Lessons learned # distill the general ones into skills
- Windows CI runners fail TLS 1.2 in PowerShell — use bash
- Migrations on tables >1M rows must batch in 10k chunks
## Last session # resume, don't restart
2026-06-11 · 3 fixes merged, 2 escalated. Next: verify rate-limit fix.
Memory 复利三动作:
| # | 反模式 | 后果 | 解药 |
|---|---|---|---|
| 1 | 跑在默认 harness | agent 每 session 重新猜项目 | 建 .claude/ 基础四件 |
| 2 | CLAUDE.md 膨胀 | 每 session 浪费 token、procedures 越改越乱 | 限 500 tokens / 拆 skills / 拆 rules/ |
| 3 | Enforcement 放 CLAUDE.md | 模型”礼貌忽略”建议 | 改 hooks(exit 2 阻断) |
| 4 | 单 agent 自写自评 | 自我宽容,质量崩 | 加 reviewer subagent(新 context) |
| 5 | 没有 memory | 每次重零开始 | 建 STATE.md 三段式 |
| 6 | loop 套在烂 harness 上 | 烂的更快更大 | 顺序:先 harness 跑通,再上 loop |
| 7 | 20 个 hooks | 谁也搞不清在哪触发 | 1-2 个锋利的 |
| 8 | Ship harness 不扫 secrets | 团队级泄漏 | 打包前扫 .env / 过宽权限 |
.claude/:CLAUDE.md 限 500 tokens / rules/ 按模块分 / skills/ 装 PR checklist / agents/ 装 reviewerrm -rf / 改 .env / push 到 master / main(监控类 APP 误删代价极高).claude/agent-memory/STATE.md:每次跑完更新 verified facts(pod install 顺序/pch 路径依赖)/ lessons(push 前要 pod repo update)/loop 或 Routines。复利是双向的:好 harness 复利加速,烂 harness 复利腐烂“所有人都在聊 loop,但几乎没人聊 loop 跑在什么上面。” —— 0xCodez
“Loop engineering sits one floor above the harness.” —— Addy Osmani(被 0xCodez 引用)
“CLAUDE.md 是建议,hooks 是强制。” —— 区分软硬约束的本质
“Workflow 是指挥家,harness 是管弦乐队。” —— workflow 与子组件的关系
“模型从来没变过,变的是它周围的 harness。” —— 自我进化的真相
“Loop 拿走所有掌声,harness 干所有活。” —— 哲学升华
标签:#主题/AIAgent #主题/AI-Coding #手法/体系框架 #手法/工程实践 #场景/X长文 #场景/ClaudeCode