初识 Hermes 及工作中的简单应用
初识 Hermes 及工作中的简单应用
Hermes Agent — “The self-improving AI agent.”
运行越久 → 学习越多 → 能力越强
什么是 Hermes Agent
Hermes Agent 是由Nous Research推出的开源 AI Agent 框架 —— 不是聊天机器人,也不是 IDE Copilot,而是:
能够长期运行、持续学习、可部署到任意环境中的自主智能体。
传统 AI vs Hermes 模式
❌ 传统 AI 产品
用户输入 → Prompt → LLM → 结果单向、无记忆、无成长。
✅ Hermes 模式
用户输入 → 构建上下文 → LLM 决策 → 调用工具 → 获得结果 → 更新记忆 → 沉淀技能 → 输出Hermes 更接近:AI 员工、AI 运维助手、AI 研发代理、自动化执行系统 —— 而非简单的聊天工具。
核心特性
① 自学习(Learning Loop)
这是 Hermes 最大特色 ——运行越久,学习越多,能力越强。
能力来源:
- 自动记录经验
- 创建可复用技能(Skill)
- 使用中持续优化
- 跨会话记忆
- 用户建模
闭环流程:
执行 → 记录 → 提炼 → 形成技能 → 再次使用 → 能力增强正向反馈循环 —— 用越久越聪明。
② Memory(长期记忆)
| 普通 Chat | Hermes |
|---|---|
| 上下文结束 → 遗忘 | 会话结束 → 持久保存 → 下次继续 |
支持与价值:
- 用户偏好 / 历史任务 / 工作上下文 / 长期知识
- 减少重复 Prompt
- 个性化交互
- 支撑长周期任务(数天~数周)
③ Skills(技能系统)
Skill =Agent 的程序性记忆,将反复操作沉淀为可复用资产。
生成周报 → 收集数据 → 分析变化 → 输出 Markdown未来:调用技能 → 一句话自动完成。
技能来源:
- 📁本地定义:项目级或用户级
SKILL.md - 🌐社区共享:复用他人沉淀的技能
- 🤖自动生成:从反复操作中自动提炼
④ Tool Calling(工具系统)
| 类别 | 示例 |
|---|---|
| Web | web_search |
| 文件 | read_file |
| Shell | terminal |
| 浏览器 | browser |
| 自动化 | process |
| Agent | subagent |
| Memory | memory |
| 通信 | message |
工具组合 → 完整闭环:
搜索 → 分析 → 写代码 → 运行 → 修复 → 提交Hermes 可自主组合工具,从搜索到提交形成完整工作闭环。
⑤ Multi-Agent(多 Agent 协作)
架构:
Master Agent │ ├── Research Agent ├── Coding Agent ├── Review Agent └── Deploy Agent特点:
- ⚡并行执行:多个 Agent 同时工作,互不阻塞
- 🔒隔离上下文:每个 Agent 独立上下文,互不干扰
- 📈提升吞吐:复杂任务拆解为并行子任务
常见运行模式
终端模式:
hermes# CLI 交互hermes--tui# 图形终端消息平台接入:Telegram · Discord · Slack · Teams · WhatsApp · …
消息平台 → Hermes Gateway → 工具执行 —— 在常用聊天工具中直接使用 AI Agent。
安装与启动
安装:
# Linux / macOScurl-fsSLhttps://hermes-agent.nousresearch.com/install.sh|bash# Windowsiex(irm https://hermes-agent.nousresearch.com/install.ps1)初始化 & 启动:
hermes setup--portal# 初始化hermes# 启动也支持通过 OpenCode 安装,与 Claude Code 协同工作。
常用 Slash Commands
会话管理
| 命令 | 功能 |
|---|---|
/new | 新建会话 |
/clear | 清空上下文 |
/retry | 重试上次操作 |
/undo | 撤销操作 |
/title | 命名会话 |
/resume | 恢复历史会话 |
/sessions | 查看历史会话 |
Agent 控制
| 命令 | 功能 |
|---|---|
/agents | 查看后台任务 |
/background | 后台执行任务 |
/queue | 查看任务队列 |
/goal | 设定长期目标 |
/stop | 停止当前任务 |
配置命令
| 命令 | 功能 |
|---|---|
/config | 查看/修改配置 |
/model | 切换模型 |
/personality | 切换人格 |
/reasoning | 设置推理等级 |
/voice | 语音模式 |
/yolo | 关闭确认提示 |
上下文优化
| 命令 | 功能 |
|---|---|
/compress | 压缩上下文 |
/snapshot | 创建上下文快照 |
/rollback | 回滚到快照 |
/steer | 插入控制指令 |
/learn —— 把生成技能的控制权交给用户
Hermes 1.17 新增
通过明确的学习指令,用户可以决定从哪里学习、学习什么、沉淀成什么技能。
/learn <要学习的内容>不带参数时,默认从当前对话流程中学习。
五种使用方式:
| 方式 | 示例 |
|---|---|
| 从目录/代码库学习 | /learn 从 ~/projects/my-api 学习这个项目的代码风格和架构 |
| 从 URL 学习 | /learn 学习 https://example.com/api-docs 的 API 设计模式 |
| 从当前工作流学习 | /learn 把刚才修复数据库连接超时的步骤保存为技能 |
| 从粘贴的笔记学习 | /learn 从上面的笔记创建一个部署检查清单技能 |
| 从对话历史学习 | /learn 把这次对话中解决 CI 构建失败的方法保存下来 |
Hermes vs 普通 AI Agent
| 能力 | 普通 Agent | Hermes |
|---|---|---|
| Tool Use | ✓ | ✓ |
| 长期记忆 | ✗ | ✓ |
| 技能沉淀 | ✗ | ✓ |
| 多 Agent | 部分 | ✓ |
| 自学习 | ✗ | ✓ |
| 消息平台 | 部分 | ✓ |
| MCP | 部分 | ✓ |
核心差异:成长。Memory + Skills + Self-Learning = 越用越强。
为什么值得关注
真正的变化:不只是"让模型调用工具",而是让 Agent 拥有成长能力。
能力沉淀演化路径:
Prompt → Workflow → Agent → Learning Agent未来不是写 Prompt,而是训练自己的 Agent。
实战:基于 Hermes 构建业务知识助手
安装与路径配置
# 安装curl-fsSLhttps://hermes-agent.nousresearch.com/install.sh|bash# 或交给 OpenCode 执行# 创建副本(profile)hermes profile create my-profileecho'export PATH="$HOME/.local/bin:$PATH"'>>~/.bashrc配置模型信息
my-profile setup(配置过程中会要求填写模型端点地址、模型名称、鉴权 Token 等信息,请按你的实际环境填写,此处不展示具体配置值。)
配置内存(Memory)& 项目初始化
配置内存:
$ my-profile memory setup Configuring holographic: SQLite database path [~/.hermes/profiles/my-profile/memory_store.db]: Default trust score for new facts [0.5]: HRR vector dimensions [1024]: Memory provider: holographic Activation saved to config.yaml Provider config saved Start a new session to activate.项目初始化:
- Git 拉取项目
- 切换至固定分支
claude init初始化项目- 将触发关键字等信息填写到
project.md中
创建技能 & 构建知识库
自建技能:
| 技能 | 说明 |
|---|---|
🎫order-ticket-parser | 解析工单数据并存储到外挂内存 |
📊my-order | 统计工单工作台处理完成的工单,生成周报 |
📦my-add-module | 自动添加业务模块 Git 仓库 |
📚my-knowledge | 统一的知识查询框架,三层查询策略 |
构建知识库的三种方式:
- 通过
auto.py生成的文件沉淀知识库 - 通过
order关键字将 QA 沉淀知识库 - 通过代码查询知识沉淀至知识库
技能一:order-ticket-parser —— 工单数据解析
目标:解析工单数据并存储到外挂记忆,构建可复用的工单知识库。
解析流程
用户消息以 order 开头 ↓ 解析工单数据 ↓ 提取工单号(格式: OPEN...) ↓ <格式规范?> ├─ 规范 ─→ 提取问题描述(OPEN 开头的行) │ ↓ │ 提取解决方案(以 # 开头的行) │ ↓ │ 配对问答 → 形成工单记录 │ ↓ │ 调用 fact_store(action=add, category=project) │ ↓ │ 设置标签(tags=工单) │ └─ 不规范 ─→ 跳过该工单,继续下一个 ↓ <还有更多工单?> ├─ 是 ─→ 提取下一个工单号 └─ 否 ─→ 反馈处理结果,统计存储数量 → 结束技能二:my-order —— 工单统计与周报生成
目标:统计本周处理完成的工单,自动生成周报 Markdown。
工单统计与周报生成流程
用户请求:"统计我本周处理完成的工单数" ↓ <API 可用?> ├─ 推荐: API 方式 ──────────────┐ │ 获取 OAuth Token (password grant) │ ↓ │ 获取用户信息 /iam/.../users/self │ ↓ │ 拉取 Workbench 数据(按 solutionUserId 过滤) │ ↓ │ 并行拉取:解决方案文档 | 交流记录 │ │ └─ Fallback: 浏览器方式 ─────────┤ 登录开放平台 │ ↓ │ 切换到"我处理的" │ ↓ │ 切换到"其他"tab │ ↓ │ 逐页提取工单编号 │ ↓ │ 逐个打开详情页 ────────────┘ ↓ 生成周报 Markdown ↓ ┌──────────────┬──────────────┬──────────────┐ │ 📝 问题描述 │ ✅ 解决方案 │ 💬 处理过程 │ │ AI 总结 │ 原文提取 │ 全参与者总结 │ └──────────────┴──────────────┴──────────────┘ ↓ 输出: 周报-日期范围.md (总数 + 明细表格 + 状态分类)技能三:my-add-module —— 添加业务模块
目标:根据用户提供的 Git URL,自动添加业务模块仓库并完成配置。
添加模块流程
用户提供 Git URL ↓ 收集必要信息(服务名 / 关键词 / 分支) ↓ <信息完整?> ├─ 缺服务名 ─→ 自动从 URL 提取 ├─ 缺关键词 ─→ 询问用户 ├─ 缺分支 ─→ 询问用户 └─ 已完整 ─→ 提取仓库名称 ↓ 编辑 project.md 添加服务配置 ↓ mkdir -p 创建目录 ↓ git clone 克隆仓库 ↓ git checkout 切换分支 ↓ <验证结果> ├─ 成功 ─→ 完成,返回摘要 ├─ 分支不存在 ─→ 列出可用分支,用户选择后重试 └─ 克隆失败 ─→ 报告错误技能四:my-knowledge —— 知识查询框架
目标:统一的知识查询入口,采用三层查询策略,命中后自动沉淀。
三层查询策略(总览)
用户查询 ↓ 读取 project.md,关键词匹配 ↓ 识别目标服务 ↓ <三层查询策略> │ ├─ 第 1 层:fact_store probe(精准查询) │ <命中?> ─ 是 → 整理回答 │ └ 否 → 进入第 2 层 │ ├─ 第 2 层:fact_store search(关键词搜索) │ <命中?> ─ 是 → 整理回答 │ └ 否 → 进入第 3 层 │ └─ 第 3 层:代码库查询 获取答案 → 自动存储到 fact_store ↓ 返回用户答案 (通用查询 → "我也不知道")代码库查询详情(第 3 层)
触发代码库查询 ↓ 强制使用 Claude Code ↓ claude -p 执行查询 (--allowed-tools Read --max-turns 15) ↓ <查询成功?> ├─ 成功 ─→ 获取答案 └─ 失败 ─→ 回退:传统文件搜索(search_files / read_file)→ 获取答案 ↓ 自动存储到 fact_store(action=add / tags=服务实体标签) ↓ 返回用户答案前提条件:已确认特定服务 → 路径:
/<工作目录>/<服务名>/<仓库名>
参考:
- 官方文档:https://hermes-agent.nousresearch.com
Q & A