Hermes 构建科学性审计

审计时间:2026-05-12 15:05 CST

总体架构科学:多 profile 独立运行、职责拆分清楚、Report Center 链路成型;主要问题集中在配置漂移、旧 cron prompt 未完全更新、部分 profile 环境变量未继承、历史状态快照权限偏松。

总体判断

维度结论依据
职责拆分合理Master/Worker/Network/News/Health/Stock 分离,SOUL 明确互不委派、各自闭环。
运行隔离基本合理每个 profile 有独立 HERMES_HOMEconfig.yaml.env、状态库、cron。
上下文成本方向正确Master/Worker/Network 只读 STARTUP_CONTEXT.md,长参考改为定向读取。
配置一致性需整理部分 profile 仍是 config version 22;baseline 文档仍含 artist/workspace 旧称。
定时报告链路部分漂移News/Health SOUL 已要求 Report Center,但个别 cron prompt 仍写深色主题、本地 HTML 或 Telegram 直接摘要。
状态与权限需补刀活跃 state.db 已 600,但历史 state-snapshots/*/state.db 仍为 644。

当前 Profile 与服务

Profile服务模型状态风险点
Master/defaulthermes-gateway.servicegpt-5.5 / mediumrunning内存约 2.6G,主状态库约 280M;适合作为重任务入口,但要继续控制长上下文。
Workerhermes-gateway-worker.servicegemini-3.1-pro-high / lowrunningconfig version 22 -> 23;baseline 写的是 pro-preview,实际是 pro-high。
Networkhermes-gateway-network.servicegemini-3-flash-preview / lowrunningconfig version 22 -> 23;职责边界清楚。
Newshermes-gateway-news.servicegemini-3-flash-preview / lowrunningsystemd unit 风格与其他 profile 不一致;SOUL 过泛;AI 新闻 prompt 仍要求深色主题。
Healthhermes-gateway-health.servicegemini-3-flash-preview / mediumrunningconfig version 22 -> 23;日志出现 CloudCode/Gemini 403;日报 cron 仍写本地 HTML 与深色主题。
Stockhermes-gateway-stock.servicegpt-5.5 / lowrunning职责清晰;TELEGRAM_HOME_CHANNEL_NAME=Inventory 是旧命名残留。

发现的问题

级别问题影响建议
Health 日志出现 CloudCode/Gemini 403,提示对应账户服务被禁用。Health 任务可能在某些路径上失败或降级,尤其当自动 provider 选到不可用链路时。把 Health 的模型/辅助 provider 固定到可用的本地 CLIProxy 路由,避免 auto 漂移到被禁用账户。
Profile 环境变量未同步 SEARXNG_URLMaster 可见本地 SearXNG,但 Worker/Network/News/Health/Stock 的 config check 均显示缺失;专项 bot 做 web_search 时可能不用本地搜索后端。SEARXNG_URL=http://127.0.0.1:8088 同步到需要搜索的 profile .env
News/Health 的 cron prompt 与统一 Report Center 风格不一致。会继续生成深色主题、本地文件或 Telegram 直发摘要,和“HTML 报告默认”规则冲突。重写 News/Health cron prompt:统一使用 /root/.hermes/REPORT_HTML_STYLE.md,发布到 Report Center,只回传标题、摘要和链接。
News SOUL 仍是通用 Hermes assistant 开头,缺少完整边界。专项服务机器人可能在非新闻任务上表现过宽,边界弱于 Health/Worker/Network。补成 News 专项 SOUL:只处理新闻抓取、筛选、摘要、报告任务;不做系统运维和跨 profile 修改。
systemd unit 风格不统一,News 尤其明显。News 使用 WorkingDirectory=/root、缺少统一 PATH/VIRTUAL_ENV、RestartSec=5,排障和行为一致性较差。按 Worker/Network 模板统一 profile gateway unit。
历史状态快照 state-snapshots/*/state.db 为 644。状态库可能含会话/记忆内容;权限与活跃库 600 策略不一致。/root/.hermes/state-snapshots/*/state.dbgateway_state.jsonmanifest.json 收紧到 600。
config-baseline.md 含 artist/workspace 旧称,Worker 模型名与实际不一致。对人和 agent 读基线时造成误判。更新 baseline:移除 artist/workspace,加入 Network/Stock,记录当前实际模型。
部分 gateway_state.json 为 644。文件较小,风险低,但权限策略不一致。统一设为 600。

Token 与运行成本评估

观察判断
轻量启动上下文STARTUP_CONTEXT.md 控制在 100 行内。科学,已经避免每次读长记忆和系统手册。
SOUL 长度Master/Worker/Network 比较长,但职责清晰;News 反而太短且泛。可优化,不是 token 最大问题,重点是专项边界。
状态库Master state.db 约 280M,Worker/Network 约 55M,Health/News 约 13-16M。可控但需治理,继续保留 5 快照/7 天策略。
历史会话主 sessions 约 198M,profile sessions 合计约 114M。可接受,不是当前主要负担。

建议整改顺序

优先级动作说明
1修复 Health provider 漂移与 403 问题。避免定时健康报告失败。
2同步 SEARXNG_URL 到需要搜索的 profile。让所有专项 bot 使用本地搜索后端。
3重写 News/Health cron prompt。统一 Report Center 发布链路,消除深色主题和本地报告旧逻辑。
4收紧历史状态快照权限。补齐前次权限收紧遗漏。
5统一 systemd profile unit。降低排障复杂度,尤其是 News。
6更新 config-baseline.md 和 News SOUL。消除文档漂移和专项边界不足。

涉及文件

类别路径
主配置/root/.hermes/config.yaml
Profile 配置/root/.hermes/profiles/{worker,network,news,health,stock}/config.yaml
SOUL/root/.hermes/SOUL.md/root/.hermes/profiles/{worker,network,news,health,stock}/SOUL.md
轻量上下文/root/.hermes/STARTUP_CONTEXT.md
报告样式/root/.hermes/REPORT_HTML_STYLE.md
Cron/root/.hermes/cron/jobs.json/root/.hermes/profiles/{news,health,worker}/cron/jobs.json
systemd/etc/systemd/system/hermes-gateway*.service
状态库/root/.hermes/state.db/root/.hermes/profiles/*/state.db/root/.hermes/state-snapshots/*/state.db
基线文档/root/.hermes/config-baseline.md