Hermes 项目路由与工程体系重构 — 全景说明
解决三大困扰:Discord 项目上下文聚焦 · USER/MEMORY 防暴涨 · hermes/CC/codex 各司其职
〇、待你确认(7 项决策 + 已确认记录)
⏰ 待你决策(不阻塞 spike,但阻塞第 3 批实施)
- ① Discord 频道清单:建议 3 个活跃工程(ai-collection-call / wechat-qa-bot / swim-member-manager)|操作表见第三节
- ② 历史线程 44 条逐个勾决:见第五节(处置建议已按初判标好)
- ③ 天气 cron×3:建议删除(已暂停 20 天)
- ④ skills 目录 git init:建议同意(改错可回滚)
- ⑤ 观测阈值 12 点位:建议先用草案跑 1 周再校准
- ⑥ kanban:建议废弃(.cc/tasks+STATE.md 已覆盖流转)
- ⑦ SSH 口令认证:建议关闭(改密钥登录)
已确认(08-26 深夜):②有效期 会话24h+线程3天 ③升级冻结 ④项目处置全按建议 Clash 节点已换通用节点(你已操作✅)
你今晚已处理的:Clash 节点切换(N1 已缓解,cloudflared/Discord 应恢复)
一、主线与核心模型(一请求=一任务,终稿)
核心模型:一请求=一任务(2026-08-27 用户裁决终稿)
拆分权在 CC,hermes 不拆任务不写方案——hermes 无工程全局视野,拆解必须在信息最全处发生:
大请求:CC 自提两阶段(先设计→你确认→实施);蜂群保留(≥4 低耦合 slot 并行 + collector 汇合);REQ/DF 由 CC 写(工程事实单一写手)。
CC 提问回路(2.3b)
CC 遇阻塞性问题(设计分叉需裁决/需求歧义/需求矛盾)→ 停止执行,输出结构化问题清单(clarify 三问:选项+影响+CC推荐)→ hermes 纯转发(不代答不转述不解释——无损透传)→ 你答复 → wrapper resume:<session-id> 续接,CC 继续(上下文全保留)。无轮数上限(性质触发);codex 审查增维度:该问而没问/问了废话。
hermes 零加工转述协议(2.3c,2026-08-28 定稿)
hermes 不加工任何需求,只做原汁原味转述:
三杜绝成功标准:①memory 30 天不超 80% ②限额事件感知 <1 分钟(403 即通知+退避重试不空转)③委派合规率 100% ④接力棒丢失=0(每次交接=载体+状态标记+通知)。
三方职责与能力分层(2026-08-27 修正)
| 层 | 工具 | 管什么 | 状态 |
|---|---|---|---|
| 系统契约层 | blueprint(缩为契约) | 目录结构 / 三方职责与门禁 / 路由规范 / 记忆治理 / 蜂群 / 中文交付链 | 待 v3 修订 |
| 工程纪律层 | superpowers(CC 侧必装必用) | CC 内部怎么干活:brainstorming→writing-plans→TDD→verification→review | hermini 已装未启用(启用 enabledPlugins 即可) |
| 规范生命周期层 | speckit(工作流引擎) | specify→plan→tasks→implement→converge + gate 人审门(resume+verdict 注入,原生为中继设计) | spike 验证中(见第十节) |
hermes 定位=数字管家层:对话入口、需求对话、路由装配、记忆体系、收尾门禁核对、cron/观测/运维、codex 链编排。不做工程协作者。
二、工作原理(全景时序)
2.1 一次请求的完整时序(终稿版)
写一张卡(要求+约束引用+验收)
不拆解不写方案
分析写REQ → 设计写DF
内部自拆解 → 实现 → 验证
遇阻塞→提问回路
(含档位/文档/提问质量)
(版本行/文档同步)
通知你
产物→deliverables/
活文档已同步
2.2 消息映射(确定性解析)
2.3 USER.md / MEMORY.md 记什么、何时清
| 时刻 | USER.md | MEMORY.md |
|---|---|---|
| 迭代工作中 | 基本不动(仅你纠正偏好) | 写入判定问句把关,项目内容不写 |
| 每轮注入 | 全文 | 全文 |
| 每周日 21:00 | governor:自动动作 + 提案(你确认才执行) | |
| 水位 ≥80% | 周报页黄条告警(不自动删) | |
| 会话 24h 重置 | 不清 memory——memory 是持久层,会话才是耗材 | |
三、Discord 结构操作表
| 层级 | 映射 | 命名格式 | 谁来设 | 有效期 |
|---|---|---|---|---|
| 频道 | 项目 | 项目名 | 你建 | 永久 |
| 线程(子区) | 迭代 | 随便取——hermes 首消息时生成迭代目录名并回执绑定(如 2026-08-28-denglu-rebuild);恢复时用该名重开线程或说"继续<迭代名>" | 你开+hermes 回执 | 闲置 3 天归档 |
| 会话 | 工作记忆 | —(自动) | hermes 配置 | 闲置 24h 重置(notify) |
你的 Discord 操作步骤(①频道确认后执行)
- ① 服务器设置 → 线程自动归档改 3 天
- ② 新建项目频道 → 每个发一句"绑定项目 X"
- ③ 新迭代:频道内开线程,名字随便取——hermes 首消息回执绑定迭代名
- ④ 旧迭代恢复:用 hermes 给过的迭代名开线程,或说"继续<迭代名>/列出迭代"
四、项目盘点(11 项处置,④已确认全按建议)
| 项目 | 处置 | 频道 | 说明 |
|---|---|---|---|
| ai-collection-call(车贷催收·公司) | 继续做 | ✅ 建 | 活跃工程 |
| wechat-qa-bot(保时捷问答·公司) | 继续做 | ✅ 建 | 活跃工程 |
| swim-member-manager(游泳馆) | 继续做 | ✅ 建 | 活跃工程,双端并行 |
| taste-extractor | 升级立项 | 可选 | 决策偏好基础设施(埋点+提取+确认) |
| hermes-evolution | 正式项目化 | 可选 | 本次改造=其第一 feature |
| ai-employee-research + 电销/数字员工 | 合并暂缓 | 不建 | "电子员工"项目,下一阶段重点 |
| ai-game-farming | 留观 | 不建 | 后续可能立项小游戏 |
| tri-terminal-work-phone | 留观 | 不建 | 后续出报告方案 |
| deepseek-harness-research | 持续关注 | 不建 | hermini+北京VPS 试用 |
| web-security-plan | 归档 | 不建 | 已交付 |
| 天气 cron×3 等 | 待确认删除 | — | ③决策项 |
五、历史线程盘点(44 条,②逐个勾决)
处置说明
- 废弃=你在 Discord 删线程(无内容价值)
- 归档=留在原地自然归档(已完成不搬)
- 合并=摘要落进对应项目文档后删
- 重新激活=项目频道开同名线程,恢复流续上
| 线程 | 最后活跃 | 消息 | 建议处置 | 去向 |
|---|
六、实施工作清单
| # | 事项 | 谁 | 时机/状态 |
|---|---|---|---|
| 1 | 设计文档 + HTML 全景 + 盘点表(本页) | 我 | 已完成 |
| 2 | speckit spike S1-S7(决定三层架构) | 我 | 进行中(S1/S2/S4 PASS;S3/S5-S7 待配额窗口) |
| 3 | config:session_reset 24h+notify;auxiliary 配 v4-flash | 我 | 闲置窗口(②已确认) |
| 4 | venv 装 websockets;cc-switch smoke 落盘 | 我 | 闲置窗口 |
| 5 | blueprint v3(按 spike 结论修订)+ USER/MEMORY 条目(判定问句/频道=项目/删单行例外) | 我 | spike 后 |
| 6 | superpowers 启用(hermini CC enabledPlugins) | 我 | 第 1 批 |
| 7 | wrapper v2.3:裸错误分类+重试+403 快失败(R1+R5) | 我 | 第 1 批 |
| 8 | kimi-proxy status + 委派前双探活(R2+R7) | 我 | 第 1 批 |
| 9 | metrics-observer + cron(baseline 先行,12 点位) | 我 | 第 1 批 |
| 10 | 迁移残留清理(/home/ubuntu 引用、僵尸会话)+ 会话绝对硬上限 | 我 | 第 1 批前置 |
| 11 | Discord:建频道 + 线程归档 3 天 + 绑定 | 你 | ①确认后 |
| 12 | 历史线程勾决执行 | 你决策 | ②勾决后 |
| 13 | 项目补齐(只对"继续做"项目) | 我(委派 CC) | 第 3 批 |
| 14 | 工作台页面 + 项目状态总览 cron | 我 | 第 2 批 |
| 15 | 观测期:baseline→对比→硬拦截决策(B4) | 观测自动+你 | 第 4 批 |
| 16 | 哨兵重建/废弃、bak/cron 清理、SSH 认证关闭、update-check 误报 | 我 | 第 4 批(部分需你确认) |
| 17 | 配额事件观测+空闲判定升级(R6+R8) | 我 | 第 2 批 |
| 18 | 浏览器资源观测+会话级隔离(N12) | 我 | 第 2 批 |
七、观测体系(12 点位,埋点先于改造)
| # | 点位 | 目标 | 异常阈值(草案) |
|---|---|---|---|
| ① | memory 水位+日增量 | 验证写入判定 | 日增量 >200 字符 ×3 天 |
| ② | 拒绝写入(限额/威胁拦截分类)+违规写入 | 验证纪律 | 违规 >2 次/周 |
| ③ | 委派合规率 | 验证单通道 | <90% ×2 天 |
| ④ | 会话数量/重置/压缩次数 | 验证 TTL+聚焦 | 24h 内重复重置 |
| ⑤ | 档位分布 + codex 驳回率 | 验证判档质量 | 驳回率 >30% |
| ⑥ | 响应耗时分布 | 验证"快" | P95 >300s |
| ⑦ | 错误分类趋势 | 全系统健康 | 单类 >50 条/天 |
| ⑧ | 网络健康(WS 稳定性/cloudflared/Clash 节点) | N1 防复发 | socket_closed >5 次/小时 |
| ⑨ | 成本(定价快照修复后接入) | N4 治理 | 日成本突增 2× |
| ⑩ | 约束失守次数(版本行等) | 8d 断档教训 | >0 即告警 |
| ⑪ | 浏览器进程按来源分类 | N12 治理 | 僵尸进程 >0 |
| ⑫ | kimi/ZAI 配额事件 | R6 治理 | 403 >0 即告警+通知 |
闭环:异常 → 自动生成进化提案 Pxxxx + 周报标红 + hermes 通知 → 你确认 → 实施。观察者=脚本,决策者=你。
八、版本与升级策略
✅ 无新版可升(PyPI=0.19.0=已装;收益 08-25 生效)。🔒 升级冻结(实施+观测期,③已确认)。📋 未来升级=hermes-evolution 独立 T3。🐛 check_hermes_update 误报 v0.0.0 待修。
九、二次全日志扫描发现(N1-N12,1724 条错误深挖)
🔴 N1 Clash 节点根因——已缓解(你已切通用节点)
Discord socket_closed 风暴 + cloudflared 隧道死循环 12 天 = 「沪日B09 游戏」节点长连接间歇断。已切通用节点;观测点⑧持续监控。
| # | 发现 | 级别 | 处置 |
|---|---|---|---|
| N2 | 08-06 僵尸会话 20 天 441 错误(/home/ubuntu 残留 36 处) | 🔴 | 迁移残留清理(第 10 项) |
| N3 | 慢响应第二层:DeepSeek 流式断流+180s watchdog+5 次退避 | 🔴 | provider 重配+错峰 |
| N4 | 成本记账全失效(deepseek 无定价快照) | 🟡 | 观测点⑨ |
| N5 | 哨兵死(0.19.0 移除探测,fallback 死配置) | 🟡 | 第 16 项决策 |
| N6 | 视觉功能全禁用 + web key 未配 | 🟡 | provider 重配 |
| N7 | memory 威胁模式误拦 + sanitization 静默清空卡参数 | 🟡 | 分类上报+卡校验 |
| N8 | 考勤备份 Linux stat 语法每月必挂 | 🟢 | 一行修(第 2 批) |
| N9 | 61/99 会话未终结;4 次无诊断退出;cron 自循环 | 🟡 | cron 熔断 |
| N10 | kanban 空转待决策;blueprint 日志断更;日志双写 | 🟢 | ⑥决策 |
| N11 | SSH 口令认证开;08-21 Bearer 疑似泄漏 | 🟡 | ⑦决策+清日志 |
| N12 | 浏览器资源:取证无泄漏(用户 Chrome 4 标签正常);真实弱项=无观测+单例互斥 | 🟢 | 观测点⑪+隔离 |
08-27 晚新增:kimi 5 小时滚动配额事件——晚高峰多卡+多审查烧穿 5h 窗口 → 5 张卡 403 → 链上空转重试 = "codex 反复卡死"症状归因(codex 本身 ZAI 健康)。处置 R5 快失败 + R6 配额观测 + R7 双探活 + R8 空闲判定升级。
十、speckit spike 状态(决定三层架构)
| # | 验证项 | 状态 | 结论 |
|---|---|---|---|
| S1 | 安装(专用 venv /tmp/speckit-venv) | PASS | specify 1.0.2.dev0;--ai 已改名 --integration |
| S2 | init --integration claude | PASS | 10 命令装入 .claude/skills/ |
| S3 | headless 工作流跑通 | 被阻断 | 启动即撞 kimi 5h 配额 403(当晚生产同款)→ 主动停杀 |
| S4 | gate resume + 裁决注入(源码级) | PASS | verdict_input 绑定输入注入——原生为中继设计 |
| S5 | claude -p 执行 speckit 命令 | 待跑 | 配额恢复后 |
| S6 | hermes 中继循环脚本 | 待跑 | 脚本骨架已定 |
| S7 | 中文模板+四法 constitution | 已评估 | 纯 markdown 文件级替换,成本低 |
报告:docs/superpowers/specs/2026-08-27-speckit-spike-report.md(已提交)。初判:speckit 引擎(workflow+gate+resume)值得继续验证,配额治理是独立前置必修项。时序(08-28 定):不设截止——效果是最高优先级,配额阻断就等;spike 结论未定前 blueprint v3 按"维持现行+预留扩展点"推进。
附录A · 设计文档
完整设计(体检 P1-P14、N1-N12、四法论证、2.1-2.3b 地基、8a-8e 排查、覆盖矩阵):
docs/superpowers/specs/2026-08-26-hermes-project-routing-redesign-design.md
hermes-ops 仓库已提交。原始材料:hermes-evolution/features/2026-08-26-hermes-routing-redesign/raw/。
附录B · 术语表
| 术语 | 解释 |
|---|---|
| 迭代(feature) | 一次版本级开发任务,对应一个线程 + 一个 features/YYYY-MM-DD-<name>/ 目录 |
| 活文档 | REQUIREMENTS.md + DESIGN.md,随迭代增量补丁,始终全局最新 |
| STATE.md | 项目状态真相源(.cc/),含 feature 列表(+worktree 路径+状态) |
| worktree | git 工作树副本,每个进行中 feature 开一个,隔离开发 |
| governor | memory-governor.py 每周治理:删死指针/去重/下沉/提案 |
| 写入判定问句 | "这条是否约束未来推理?"否→不写 memory |
| 单通道 | 所有工程任务一律走 CC,hermes 无工程判定权 |
| 一请求=一任务 | hermes 不拆任务;CC 全周期(分析写REQ→设计写DF→自拆解→实现→验证) |
| 链式审查 | codex 全链对照:原始要求 vs REQ vs DF vs 实现 vs 测试 vs 交付物 |
| 提问回路 | CC 遇阻即停→clarify 三问→hermes 纯转发→resume 续接 |
| 蜂群模式 | swarm-execution:≥4 低耦合 slot 并行 CC worker + collector 汇合 |
| TTL | 会话闲置 24h 重置;线程闲置 3 天归档 |
| deliverables/ | 对外输出的中间/非主线产物(原型/流程图/演示页) |
| 5h 配额窗口 | kimi 的 5 小时滚动配额——晚高峰多 agent 并行的硬约束(R5-R8 治理) |
| 四法 | 第一性原理 + 对抗性验证 + 剃刀原理 + 双向钢人 |