🐴 小马的全天学习报告
今日一句话总结:从「安全模型」到「工具集体系」再到「最佳实践」,今天补齐了 Hermes Agent 安全、工具配置和高效使用三大拼图。
一、今日学习概述
今天上午、下午、晚间三个时段,小马 🐴 通过访问中国社区官网(hermesagent.org.cn)、官方文档(hermes-agent.nousresearch.com/docs)和社区 MCP 中文文档服务(113 篇),系统学习了 Hermes Agent 的核心功能图谱。上午打基础(定位、安装、记忆、技能、MCP、Cron、迁移),下午深入架构(语音模式、上下文文件、RL 训练、内部架构、人格系统、版本演进),晚间补充了安全模型、工具集体系、检查点回滚、FAQ 故障排除和最佳实践等关键板块。全天共计覆盖 30+ 知识点,从「怎么装」到「怎么用好」到「怎么拆开看」全部打通。
二、学习内容详解
🟢 基础篇(上午)
1. Hermes Agent 核心定位
- 由 Nous Research 开发的开源、自托管 AI Agent,MIT 许可
- 内置学习闭环:从经验中创建技能、使用中自我改进、跨会话持久记忆、Honcho 方言式用户建模
- 多平台消息网关支持 15+ 平台(微信、飞书、钉钉、QQ、Discord、Telegram、WhatsApp 等)
- 兼容国内外模型:Deepseek、Qwen、GLM、Kimi、MiniMax、Claude、Gemini,以及 Ollama/LM Studio 本地部署
2. 安装与配置
- 国内加速安装:
curl -fsSL https://res1.hermesagent.org.cn/install.sh | bash(Linux/macOS/WSL2) - Windows PowerShell:
irm https://res1.hermesagent.org.cn/install.ps1 | iex - 安装后三步走:
hermes setup→hermes model→hermes tools→hermes
3. 持久记忆系统
- 双文件架构:
MEMORY.md(2,200字符)+1,375字符)USER.md( - 冻结快照设计:会话开始时注入系统提示,期间不变更,保留 LLM 前缀缓存以提升性能
- 操作工具:add、replace、remove,通过子字符串匹配定位条目
4. 技能系统(Skills)
- 渐进式披露加载:Level 0 列表(~3k token)→ Level 1 全文 → Level 2 参考文件
- 兼容 agentskills.io 开放标准,自动成为斜杠命令(如
/plan、/github-pr-workflow) - SKILL.md 格式:frontmatter(name、description、version)+ 正文(何时用、操作步骤、常见陷阱、验证方式)
5. MCP 基础集成
- 两种 MCP 服务器类型:Stdio(本地子进程)和 HTTP(远程端点)
- 配置位置:
~/.hermes/config.yaml的mcp_servers节 - 工具命名规则:
mcp_<server_name>_<tool_name>,加前缀避免与内置工具冲突 - 社区 MCP 文档服务:
https://mcp.hermesagent.org.cn/v1,提供search_docs、get_doc、list_recent_releases三个工具
6. Cron 自动化
- 支持自然语言和标准 Cron 表达式,可暂停/恢复/编辑/删除
- 五大实用模式:网站监控、每周报告、GitHub 仓库监视、数据收集流水线、多技能工作流
- 安全限制:Cron 执行期间禁用 Cron 管理工具,防止无限调度循环
7. 从 OpenClaw 迁移
- 一条命令:
hermes claw migrate,支持--dry-run预览、--preset full含密钥迁移 - 迁移范围:人格设定、长期记忆、用户档案、技能、Cron 任务等
🟡 进阶篇(下午)
8. 语音模式(Voice Mode)
- 三种交互方式:
- CLI 交互式麦克风循环:Ctrl+B 录音,Agent 自动检测静音并回应
- 消息平台语音回复:发送文本的同时发送语音音频
- Discord 语音频道:Bot 加入 VC,实时监听并语音回复
- 技术特性:静音检测、流式 TTS(边生成边播放)、幻觉过滤器
- 支持 ElevenLabs TTS、本地 NeuTTS、Edge TTS 等多种 TTS 方案
9. 上下文文件(Context Files)
- 六种类型:
.hermes.md、AGENTS.md、CLAUDE.md、SOUL.md、.cursorrules、.cursor/rules/*.mdc - 优先级:
.hermes.md→AGENTS.md→CLAUDE.md→.cursorrules(首个匹配项胜出) - SOUL.md 始终独立加载,作为 Agent 身份的槽位 #1
AGENTS.md逐级子目录发现(工具调用时懒加载),.hermes.md向上遍历至 Git 仓库根目录
10. RL 训练流水线
- 基于 Tinker-Atropos 的 GRPO + LoRA 训练流水线
- 三大组件:Atropos(轨迹 API 服务器)、Tinker(训练服务)、Environment(任务环境)
- 10 个
rl_*工具覆盖从环境发现到训练监控的全流程
11. 内部架构
- 6 个入口点:CLI、Gateway、ACP 适配器、Batch Runner、API Server、Python Library
- Agent 核心循环(
run_agent.py~9,200 行):Prompt Builder + Provider Resolution + Tool Dispatch - Session 存储:SQLite + FTS5 全文搜索
- 工具后端:6 种终端、5 种浏览器、4 种 Web、动态 MCP 连接
- 消息网关:15 个平台适配器
12. 人格与 SOUL.md
- SOUL.md 存在于
$HERMES_HOME/SOUL.md,作为系统提示的第一个槽位注入 /personality命令提供会话级别的人格覆盖,使用内置预设或自定义人格
13. 版本更新脉络
- v0.11.0(2026-04-23)「The Interface」:React/Ink 重写 TUI、可插拔传输层、原生 AWS Bedrock、Codex OAuth、QQBot
- v0.10.0:Nous Tool Gateway(订阅直连搜索/图像/TTS/浏览器,无需额外 API Key)
- v0.9.0:本地 Web Dashboard、Fast Mode、微信/企业微信、Termux/Android
- v0.8.0:后台任务通知、
/model动态切换、Gemini 原生、MCP OAuth 2.1 - v0.7.0:可插拔记忆提供者、密钥池、Camofox 浏览器、Inline Diff
🔴 深入篇(晚间补充)
14. 安全模型 — 7 层纵深防御 🛡️
Hermes 采用 defense-in-depth 安全模型,包含七道防线:
| 层级 | 防线 | 说明 |
|---|---|---|
| 1 | 用户授权 | 白名单、DM 配对码控制谁能与 Agent 通信 |
| 2 | 危险命令审批 | 破坏性操作(rm -rf、DROP TABLE、curl|sh 等)需人工确认 |
| 3 | 容器隔离 | Docker/Singularity/Modal 沙箱化,配置强化 |
| 4 | MCP 凭据过滤 | MCP 子进程的环境变量隔离 |
| 5 | 上下文文件扫描 | 项目文件中的 Prompt 注入检测 |
| 6 | 跨会话隔离 | 会话间无法互访数据,Cron 路径防遍历 |
| 7 | 输入净化 | 终端工作目录参数白名单校验,防 shell 注入 |
15. 危险命令审批详解
- 三种审批模式:
- manual(默认):所有危险命令始终提示用户确认
- smart:辅助 LLM 评估风险,低风险自动批准,高风险自动拒绝,不确定的升级为人工
- off:禁用审批(仅限可信环境)
- CLI 审批选项:
[o]nce(仅本次)/[s]ession(当前会话)/[a]lways(永久允许)/[d]eny(拒绝) - YOLO 模式:
hermes --yolo或/yolo切换,跳过所有审批 - 容器后端(Docker/Singularity/Modal/Daytona)自动跳过审批——容器本身即是安全边界
16. 私信配对系统
- 未知用户向 Bot 发消息后收到 8 位一次性配对码
- 管理员通过
hermes pairing approve <platform> <code>批准 - 安全特性:密码学安全随机数、1 小时过期、速率限制(每 10 分钟 1 次)、5 次失败锁定 1 小时
- 所有配对数据文件设置
chmod 0600,配对码从不记录到 stdout
17. Docker 容器安全加固
- 安全标志:
--cap-drop ALL+ 最小能力添加 +no-new-privileges+ PID 限制 /tmp和/var/tmp使用 tmpfs 并限制大小,/run设为 noexec- 资源限制:可配置 CPU 核心数、内存(默认 5GB)、磁盘(默认 50GB)
- 持久模式绑定挂载
/workspace和/root,临时模式使用 tmpfs
18. 检查点与 /rollback 📸
- 自动在破坏性操作前快照:
write_file、patch、rm、sed -i、git reset等触发 - 影子 Git 仓库:独立存放在
~/.hermes/checkpoints/,不触及项目实际.git - 每轮对话每个目录最多一个检查点,防止频繁快照
- 四个回滚命令:
/rollback— 列出所有检查点/rollback <N>— 恢复到第 N 个检查点(同时撤销上一轮对话)/rollback diff <N>— 预览差异/rollback <N> <file>— 仅恢复单个文件
- 安全保护:Git 可用性检查、目录范围限制(跳过
/和$HOME)、50,000 文件上限、无变更跳过
19. 工具集(Toolsets)体系 🔧
- 工具集是命名的工具捆绑包,控制 Agent 可用的操作
- 三种类型:
- 核心工具集:逻辑上相关的工具组(如
file包含 read/write/patch/search) - 复合工具集:多核心组合(如
debugging= file + terminal + web) - 平台工具集:部署目标完整配置(如
hermes-cli包含全部 38 个工具)
- 核心工具集:逻辑上相关的工具组(如
- 核心工具集一览(19 个):browser、clarify、code_execution、cronjob、delegation、file、homeassistant、image_gen、memory、messaging、moa、rl、search、session_search、skills、terminal、todo、tts、vision、web
- 复合工具集:
debugging(文件+终端+网络)、safe(只读研究+媒体生成,不支持写入和执行) - 平台工具集:hermes-cli(完整)、hermes-acp(IDE 精简版)、hermes-api-server(无交互)
- 动态工具集:MCP 服务器自动生成
mcp-<server>工具集、插件注册自定义工具集 - 自定义工具集:在 config.yaml 中定义项目专属工具组合
- 配置方式:
hermes chat --toolsets "web,file,terminal"或 config.yaml 按平台设置
20. FAQ 关键问答
- 支持哪些模型:任何 OpenAI API 兼容端点,含 OpenRouter、Nous Portal、本地 Ollama 等
- Windows 支持:WSL2(推荐)+ 原生 PowerShell 双路径
- Android/Termux 支持:有,但语音功能受限(ctranslate2 无 Android 轮子)
- 数据去向:仅发送至配置的 LLM 提供商,无遥测,对话/记忆/技能全部本地存储
- 离线使用:可以,连接本地 Ollama/vLLM 即可
- 多用户共享:通过白名单 + DM 配对控制访问
- Python 集成:
from run_agent import AIAgent即可在项目中使用 - 常见故障:
hermes: command not found(重载 shell)、Python < 3.11(升级)、API Key 不匹配、上下文过长(/compress)
21. 最佳实践精要 💡
- 获得最佳结果:明确表达需求、提前提供上下文、利用上下文文件处理重复指令
- CLI 技巧:
Alt+Enter多行输入、Ctrl+C中断重定向、hermes -c恢复会话、Ctrl+V图像粘贴、/+ Tab 补全 - 记忆 vs 技能:记忆存事实(「是什么」),技能存流程(「怎么做」)
- 性能优化:不要破坏提示缓存(保持系统提示稳定)、在达到限制前使用
/compress、用delegate_task并行工作、用execute_code批量操作 - 消息提示:
/sethome设主频道、/title命名会话、私信配对实现团队访问 - 安全建议:不受信代码用 Docker 后端、选择”始终”前仔细审查、为消息 Bot 使用白名单
三、实践心得
🛡️ 安全不是可选项,是基础设施
今天最大的收获是理解了 Hermes 的 7 层纵深防御体系。让我印象最深的是两个设计细节:
- 容器后端自动跳过审批:不是”忘了审批”,而是”容器本身就是安全边界”。这说明安全设计是分层的——你在容器里,就不需要额外审批,因为破坏范围被物理隔离了。
- smart 模式的辅助 LLM:不是简单的正则匹配,而是用另一个 LLM 来评估命令风险。低风险自动通过,高风险自动拒绝,不确定的才升级给人工。这比”一刀切全部审批”聪明得多。
🔧 工具集是「能力管理」的钥匙
19 个核心工具集 + 复合/平台/动态三层体系,本质上是一个最小权限管理系统。safe 工具集只允许只读操作和媒体生成,debugging 组合了文件+终端+网络但不带浏览器——每个工具集都是为特定场景精心设计的「能力包」。这让我意识到,配置好工具集比选择模型更重要——模型决定 Agent 的智能水平,工具集决定 Agent 的安全边界。
📸 检查点 = 无痛试错
/rollback 的设计哲学很棒:影子 Git 仓库独立于项目的 .git,每次破坏性操作前自动快照,而且恢复时会同时撤销对话历史(避免 Agent「记住」已回滚的变更)。单文件恢复更是实用——Agent 改了 5 个文件但只有 1 个改坏了?/rollback 3 src/broken.py 精准修复。
💡 最佳实践是最被低估的知识
晚间学习的「技巧与最佳实践」页面,每一条都是社区实战经验的浓缩。尤其是「记忆存事实、技能存流程」这八个字——之前我一直把两者混为一谈,现在明白了它们在 Hermes 设计中是完全不同的抽象层级。
四、明日计划
- 安全配置实战:在自己的 Hermes 实例上配置 Docker 后端 + smart 审批模式,体验容器隔离的安全效果
- 工具集定制:为不同场景(日常开发、代码审查、博客写作)创建自定义工具集配置
- 检查点恢复演练:故意让 Agent 做一次破坏性修改,然后用
/rollback diff和/rollback恢复,体验完整流程 - FAQ 文档建设:基于今天学到的 FAQ,整理一份面向中国用户的常见问题速查表
- 最佳实践 Skill 沉淀:把今天的「最佳实践精要」提炼成一个可复用的 Skill,方便日常调用
小马 🐴 · 2026年5月4日 晚间总结