1. 为什么七条铁律需要一份 settings.json 骨架Hermes Agent 的配置铁律如果只停留在文章里交付现场还是得靠记忆拼凑。我做过 200 多次对照实验后最大的体会是结论本身不难难的是把结论变成一份能直接复制、能启动自检、能回显验证的配置文件。这篇就把七条铁律逐条翻译成 settings.json 与 config.toml 的字段骨架并给出 CC Switch、Cline 接入 TaoToken 统一 Key/API 通道的配置片段。适合谁看已经在用 Hermes Agent 或准备把它接进日常编码流程的人手上有多个 Agent 客户端、Key 散落各处、想统一走一个 API 通道的人以及被「配置写了一大堆但 Agent 还是不听话」困扰过的人。全文围绕一个目标让你一次跑通并能复现实验结论。先说清楚这篇的边界。铁律来自 Hermes Agent v0.20.0 的实测环境换模型后成本绝对值会变但相对比率和结构判断可以迁移。配置骨架是工程落地层不是教你怎么注册账号重点在字段含义、验证动作和排障路径。2. TaoToken 前置统一 Key 与 API 通道在写 settings.json 之前先把 API 通道固定下来。七条铁律里反复出现「成本」「达标率」「稳定性」如果每次实验换一个 Key、换一个端点数据就没法对比。我的做法是让所有 Agent 客户端统一走 TaoToken 的 API 通道Key 只维护一份。TaoToken 在这里扮演的是统一接入层官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。注意 API 地址不带 UTM 参数配置里直接写这个。你需要先拿到 Key。进入控制台创建 API Key路径是 console 页面创建后复制那串 sk- 开头的字符串后面所有客户端都填它。文档在 doc 页面模型对话入口在模型对话页面长期编码或 Agent 场景可以看 Coding Plan。注意Key 只存在本地配置文件或环境变量里不要写进会提交到仓库的 settings.json。下面所有片段里我用${TAOTOKEN_API_KEY}占位实际使用时替换成你的 Key 或从环境变量读取。统一通道的好处很直接CC Switch、Cline、Hermes Agent 三处共用同一个 Key成本统计口径一致出问题时只需要排查一个端点。这也是后面「调用回显」验证能成立的前提。3. 可复制配置七条铁律落到 settings.json这一节是主体。我把七条铁律拆成字段级模板每条给出「配置片段 为什么这么写 验证动作」。你可以整段复制再按注释替换。3.1 铁律一与铁律六结构化约束与甜点区结构化约束优于裸铁律但约束层数有甜点区1-2 层结构化是 100% 达标、成本 1.4-1.7×四层全家桶会过载到 2.66×。所以 settings.json 里约束用分节 纪律表格且只保留必要层。{ agent: { constraints: { version: 1.0, sections: [ { name: output_discipline, rules: [ { require: 先加载相关技能再执行, forbid: 跳过技能直接生成 }, { require: 写完自测一遍, forbid: 未自测直接交付 } ] } ], max_layers: 2 } } }max_layers是我加的硬闸防止后面手滑叠到四层。验证动作启动后看自检日志里constraints.layers是否 ≤2超过就说明有别的配置在偷偷注入约束。3.2 铁律二纪律进身份层信息进记忆层同一条「先加载技能」写进身份文件触发 3/3写进记忆文件只有 1-2/3。所以 settings.json 里要把两类内容分开存放。{ identity: { file: ./SOUL.md, discipline: [ 执行前先查技能库, 输出前自测, 不确定时先问再动手 ] }, memory: { file: ./MEMORY.md, granularity: coarse, max_items: 5 } }identity.discipline是自我要求memory是参考信息。验证动作故意在对话里问一个需要加载技能的任务看日志里identity.trigger是否为 true如果只在 memory 命中说明纪律放错层了。3.3 铁律三记忆粗粒度起步粗粒度记忆成本 0.80×比不写还省细结构化 1.24× 只换来 4% 达标率。所以max_items先设 5每条一句话。# config.toml [memory] granularity coarse max_items 5 format one_line_preference [[memory.items]] text 偏好简洁输出不要客套话 [[memory.items]] text 代码示例优先 Python [[memory.items]] text 报错时先给排查步骤再给修复验证动作启动自检打印memory.items.length超过 5 就说明有历史记忆没清理。高度依赖字段规范的任务才需要细粒度一般任务别一上来就分类。3.4 铁律四触发词精准窄宽触发词让弱相关任务 3/3 误加载。技能描述只写真实场景触发词技能名要直观。{ skills: [ { name: sql_migration_review, description: 审查数据库迁移脚本检查索引与回滚, triggers: [迁移脚本审查, migration review, 回滚检查], path: ./skills/sql_migration_review.md } ] }triggers里不要放「数据库」「SQL」这种大词否则任何沾边的任务都会命中。验证动作拿一个弱相关任务比如「写个 SQL 查询」跑一遍看日志里这个技能是否被加载被加载了就说明触发词太宽。3.5 铁律五体积分界 25/50KB小技能单文件大技能拆 refs。1.4KB 技能拆 refs 是负优化1.29×77KB 大技能拆 refs 省 13.5% 输入 token。{ skills: [ { name: small_skill, path: ./skills/small_skill.md, size_kb: 1.4, split_refs: false }, { name: large_skill, path: ./skills/large_skill/skeleton.md, refs_dir: ./skills/large_skill/refs, size_kb: 77, split_refs: true } ] }split_refs按体积判断≤25KB 设 false50KB 设 true25-50KB 按内容形态定查表型拆、方法论留。验证动作启动自检打印每个技能的size_kb和split_refs对照分界检查。3.6 铁律七验收用考卷 六维 取证验收不是跑一遍就算要有考卷、六维评估、可复现证据。settings.json 里把验收配置独立出来。{ acceptance: { exam_file: ./exam/constraint_sensitive.json, dimensions: [ first_pass_rate, compliance_rate, self_correction, cost, stability, regression_risk ], evidence_dir: ./evidence, reproducible: true } }考卷要选约束敏感型任务且必须包含「事实准确」用例——v1 考卷漏了这条事实错误输出满分通过v2 补上后 100% 暴露。验证动作跑一次验收检查evidence_dir下是否生成了可复现的日志和输入输出快照。3.7 CC Switch 与 Cline 接入 TaoToken统一通道的配置片段。CC Switch 里新增一个 provider指向 TaoToken API。{ providers: [ { name: taotoken, base_url: https://taotoken.net/api, api_key: ${TAOTOKEN_API_KEY}, models: [deepseek-v4-flash] } ] }Cline 的配置类似在设置里填 Base URL 和 API Key{ cline.apiProvider: openai-compatible, cline.baseUrl: https://taotoken.net/api, cline.apiKey: ${TAOTOKEN_API_KEY}, cline.model: deepseek-v4-flash }两处都指向同一个端点Key 从环境变量读。验证动作在 CC Switch 和 Cline 里各发一条测试请求确认返回正常且成本统计能对上。4. 验证请求与成功结果配置写完不算完要跑三个验证动作启动自检、调用回显、错误日志对照。启动自检Hermes Agent 启动时会打印配置摘要。你要看到constraints.layers ≤ 2、memory.items.length ≤ 5、每个技能的split_refs与体积匹配。任何一项不符回到对应铁律检查。调用回显发一条会触发技能加载的请求看日志里identity.trigger和skill.loaded字段。成功的结果是纪律从身份层触发、技能按精准触发词加载、没有弱相关技能误入。错误日志对照如果请求失败先看错误码。401 是 Key 问题检查${TAOTOKEN_API_KEY}是否注入404 是端点写错确认是https://taotoken.net/api而不是带 UTM 的官网地址429 是限流看 Coding Plan 的额度说明。一个成功的回显长这样[hermes] config loaded: constraints.layers2, memory.items5 [hermes] identity.triggertrue (discipline: 先查技能库) [hermes] skill.loadedsql_migration_review (triggers matched: 迁移脚本审查) [hermes] acceptance.examconstraint_sensitive.json, dimensions6 [hermes] request ok, cost1.44x baseline看到cost1.44x就说明结构化约束的甜点区生效了和实验数据对得上。5. 本篇常见错排查配置跑不通八成是下面几个坑。第一个坑约束层数偷偷超标。你在 settings.json 里设了max_layers: 2但某个技能文件里又内嵌了约束段实际层数变成 3-4成本飙到 2.66×。排查方法启动自检看constraints.layers实际值超标就全局搜constraints关键字把技能里的内嵌约束挪出去。第二个坑纪律写进记忆层。表现是 Agent 该加载技能时不加载日志里identity.triggerfalse但memory.hittrue。修复把纪律条目从 MEMORY.md 移到 SOUL.md 的discipline数组。第三个坑触发词太宽导致误加载。弱相关任务把不相关技能拉进来上下文被占满。排查日志里看skill.loaded是否出现在不该出现的任务上是就把触发词收窄去掉大词。第四个坑小技能拆了 refs。1.4KB 的技能拆成骨架 refs多一次加载往返成本 1.29×。排查自检打印size_kb和split_refs≤25KB 却设了 true 就改回来。第五个坑Key 没注入。401 报错检查环境变量TAOTOKEN_API_KEY是否在当前 shell 生效。可以临时echo $TAOTOKEN_API_KEY确认非空。注意别把 Key 直接写进会提交的文件。第六个坑端点写成官网地址。API 端点是https://taotoken.net/api不带 UTM 参数。写成官网会 404。6. 把配置变成可复现的资产这套骨架的价值在于可复现。你按上面的字段填完跑一次启动自检和验收得到的成本比率和达标率应该和实验数据在同一量级。如果对不上先查约束层数和记忆粒度这两个最容易被污染的字段。后续要补的是长对话退化边界——8 轮内无退化是实测20-50 轮还没测完。你可以用同一份 settings.json 跑长对话把evidence_dir里的日志留下来和短对话对比。模型差异也要注意全部实验基于 deepseek-v4-flash换模型后成本绝对值会变但结构判断可以迁移。需要统一 Key 和 API 通道的话从 API Keys 页面创建接入细节看接入文档想先验证模型行为可以去模型对话页面试长期编码或 Agent 场景看 Coding Plan。配置骨架复制走验证动作跑一遍你手上就有一份能复现实验结论的 settings.json 了。
