Hermes Agent 问题多因命令行参数误用或未启用 HermesDoctor 深度诊断;需正确使用 --verbose、--no-cache 等参数,并通过 hermes doctor --deep、--target 等启动高级诊断模式。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用 Hermes Agent 时遇到命令执行异常、配置不生效或诊断信息缺失等问题,很可能是由于命令行参数误用或未启用 HermesDoctor 的深度诊断能力。以下是针对命令行参数与 HermesDoctor 高级功能的详细操作说明:
一、核心命令行参数解析
hermes 命令支持一组标准化的全局参数,用于控制运行模式、日志级别与上下文行为。这些参数直接影响诊断输出的完整性与准确性。
1、添加 --verbose 参数以启用全量调试日志,包括模型请求头、工具调用栈和内存状态快照。
2、使用 --no-cache 强制跳过本地缓存读取,避免因 stale cache 导致的配置误判。
3、指定 --log-file /tmp/hermes-debug.log 将诊断日志定向写入独立文件,便于后续分析或提交给社区。
4、通过 --config ~/.hermes/config.yaml 显式声明配置路径,绕过默认查找逻辑,适用于多环境隔离场景。
二、HermesDoctor 启动与模式切换
HermesDoctor 是内置于 Hermes Agent 的诊断子系统,不依赖外部服务,所有检查均在本地完成,输出结果直接反映当前运行时真实状态。
1、执行 hermes doctor 启动基础健康检查,验证模型连接性、技能加载状态与安全策略初始化情况。
2、追加 --deep 参数进入深度诊断模式,扫描 ~/.hermes/skills/ 下所有技能的元数据完整性与依赖声明。
3、添加 --target memory 仅聚焦持久化记忆模块,输出 state.db 中最近 5 条会话摘要及时间戳校验结果。
4、使用 --target tools 检查全部已注册工具的可执行路径、权限位与版本兼容性标记。
三、离线诊断包生成与分析
当网络受限或需向他人提供脱敏诊断依据时,可生成包含结构化快照的离线诊断包,该包不含任何 API Key 或原始对话内容。
1、运行 hermes doctor --archive --output /tmp/hermes-diag-$(date +%s).tar.gz 创建带时间戳的压缩归档。
2、归档内固定包含:config-summary.json(脱敏后的 config.yaml 结构)、env-check.txt(.env 中各 Key 是否存在及长度掩码)、skills-report.csv(技能名称、安装时间、最后调用时间)。
3、解压后使用 hermes doctor --load /tmp/hermes-diag-*.tar.gz 在任意 Hermes 环境中加载并复现诊断上下文。
四、自定义诊断规则注入
HermesDoctor 支持通过 YAML 规则文件扩展检查项,适用于企业定制化合规要求或私有技能链路验证。
1、创建规则文件 /tmp/custom-rules.yaml,内容需符合官方 schema,例如定义某技能必须绑定特定模型版本。
2、执行 hermes doctor --rules /tmp/custom-rules.yaml,系统将合并内置规则与自定义规则执行联合校验。
3、若规则触发失败,输出中将明确标注违规项、对应规则 ID 及实际检测值,不中断其余检查流程。
五、实时运行时诊断快照
无需重启进程即可捕获当前会话的瞬态状态,适用于高并发场景下的偶发问题定位。
1、在已运行的 Hermes 会话中输入斜杠指令 /diagnose now,立即触发一次轻量级快照采集。
2、快照包含:当前模型响应延迟(ms)、活跃工具句柄数、SOUL.md 加载状态哈希、最近三条用户指令的 token 统计。
3、结果以纯文本形式返回至当前会话,不写入磁盘,不触发日志轮转。


















