代码语言
选择后全站课程跟随

结语:Harness 设计原则

1,875 字 · 预计阅读 5 分钟

前情提要

  • Agent = 模型 + Harness。模型负责决策,Harness 负责模型外面的一切:给它准备什么上下文、给它什么工具、怎么检查它的输出、出了状况怎么兜底
  • 第2节到第13节,读了 Claude Code 的循环、工具、权限、缓存、CLAUDE.md、Skill、MCP、Hook、插件、上下文工程、子代理、提示词

这一节不读新的源码,也不加新的代码。退后一步,把整本书看到的东西压一压:有哪些思路是反复出现的?


一、软约束 + 硬约束

提示词约束与程序权限约束性质不同

回顾全书,几乎每一个功能都是两层:

场景 软约束:提示词,管「想不想」 硬约束:代码,管「能不能」 在哪节
项目规范 CLAUDE.md deny 规则、Hook 第6、4、9节
不要自动提交 Bash 工具说明里的 Git Safety Protocol Bash(git commit *) 写进 ask 或 deny 第3、4节
高危路径 系统提示词里「谨慎操作」一整节 改 .git/、.claude/、shell 配置,全自主模式也要问 第13、4节
计划模式 提醒:Plan mode is active... 权限拦下所有改动 第12节
只读的 Explore 子代理 提示词:READ-ONLY MODE 工具列表里只给只读工具 第12节
不让模型自己调用某个 Skill (不需要) 不进目录,Skill 工具也拒绝 第7节
插件 (不需要) 插件不能给自己加权限,插件子代理不能声明权限模式 第10节

两层各有分工:

  • 软约束让模型理解意图,在规则没写到的地方也能做对的事。但它是概率性的:大概率遵守,不是一定遵守
  • 硬约束保证底线,模型怎么想都绕不过去。但它只能管写死的情况,管不了「意图」

Claude Code 的做法是:能用提示词讲清楚的,先用提示词讲;绝对不能发生的,再用代码锁死。 两层都有,而且很多时候是同一件事写两遍。

你配置自己的 Claude Code 时也一样:CLAUDE.md 和 Skill 负责「讲道理」,权限规则和 Hook 负责「立规矩」。「CLAUDE.md 是建议,Hook 是规定」这句话,到这里有了完整的解释。


二、七条设计原则

简洁循环外围的校验、反馈与上下文机制

本文是会员内容

全文 1,875 字,已试读约 30%。 开通专业版可阅读全文,并解锁全部课程与后续更新。

开通专业版

支持 7 天无理由退款 · 早鸟期前 500 名自动升级永久卡