diff --git a/docs/dev-spec.md b/docs/dev-spec.md index 73cb98e4..4a67e487 100644 --- a/docs/dev-spec.md +++ b/docs/dev-spec.md @@ -22,6 +22,7 @@ 8. **备份/遗留物禁止留在生产数据目录** — `.bak`、`decisions_backup_*`、迁移残留 JSON、废弃 DB,必须在迁移/变更完成时移到 `archive/`。生产数据目录(`MoFin/data` = `web-dashboard/data`)只放活文件。监控脚本扫描生产目录时,遗留物就是未来的假警报 9. **死模块必须收尸** — 宣布模块废弃时,必须在同一轮操作中完成收尸六步:①杀进程 ②stop+disable systemd 服务 ③删 cron job ④归档脚本到 `archive/` ⑤归档数据文件 ⑥从期望矩阵/监控中移除。只说"已废弃"不收尸 = 没废弃(小果 bot 以 root 白跑 8 天 2.5GB 的教训) 10. **监控查"活"不查"在"** — 健康检查必须验证**数据新鲜度**(DB 表 MAX(时间列))而非"文件存在/进程存在"。文件 mtime、进程存活都不构成健康证据——数据 24h 不更新才是事故。禁止拿遗留文件的 mtime 当管道健康指标("数据管道停滞14天"假警报的根因) +11. **批量 LLM 调用禁止走 hermes gateway agent 通道** — hermes gateway 的 `/v1/chat/completions` **不是透传**,是完整 agent 运行时:每个请求创建带工具(terminal/websearch/patch)的 agent 会话,可能螺旋几十轮、累积 150k+ token,客户端超时后服务端仍空转,重试会叠加新会话形成自我 DDoS(2026-07-21 603288 事件:单次重评螺旋 35 分钟、44 次 terminal 调用)。所有批量/脚本化 LLM 调用必须经 `llm_client.call_llm()`:**OCG 上游直连为主**(裸 completion,key 运行时从 hermes config.yaml 读取,不落盘),gateway 仅作应急兜底。新增 LLM 调用点一律复用 `llm_client`,禁止手写 HTTP 调用 ---