Hermes Agent 完全指南:从安装到分角色持久化饲养

Hermes Agent 是 Nous Research 出品的开源 AI 终端助手,功能强大且高度可定制。本文详细介绍安装配置、持久化任务系统、分角色饲养技巧,以及和生产力的结合方法。

Hermes Agent 完全指南:从安装到分角色持久化饲养

前言

最近在找一个真正能融入日常工作的 AI 助手,试了不少方案——ChatGPT CLI、Claude Code、OpenAI CLI……要么太重,要么功能太散,要么就是"一次性对话"用完就忘。

直到我遇到了 Hermes Agent

它是 Nous Research(就是那个做 Hugging Face 模型的公司)开源的终端 AI 助手,最打动我的不是某个单一功能,而是它整个设计理念:像一个真正的同事,而不是一个问答机器

它能记住我的偏好,能定时跑任务,能分角色工作,能跨会话保持上下文,还能接入各种平台(Discord、Telegram、Slack……)。今天这篇文章,把我踩过的坑、总结的经验全部整理出来,供大家参考。


一、Hermes Agent 是什么

简单说:Hermes Agent 是一个运行在终端里的 AI 助手,基于大语言模型驱动,但比普通对话强得多。

它的核心特点:

1
2
3
4
5
6
7
8
持久化记忆  → 跨会话记住你的偏好、项目、环境
分角色系统  → 可以为不同场景定义不同的人格和工作方式
定时任务    → 像 cron 一样自动运行任务,结果推送到任意平台
工具集系统  → Web搜索、终端命令、文件编辑、代码执行、浏览器自动化……
Skills系统  → 可插拔的工作流知识库,按需加载
多平台接入  → Telegram、Discord、Slack、WhatsApp、邮件等
MCP支持    → 可以连接任何 MCP 服务器扩展工具能力
持久化 Session → 对话不丢失,随时可以继续

官方文档:https://hermes-agent.nousresearch.com


二、安装——Windows 用户需要注意的事

2.1 环境要求

最重要的事说在前面:Hermes Agent 需要类 Unix 环境,不支持原生 Windows。

Windows 用户必须先装 WSL2(Windows Subsystem for Linux),然后在 WSL2 里运行。

1
2
3
4
5
6
需要的条件:
- Python 3.10+
- pip 或 uv 包管理器
- WSL2(Windows 用户)
- Linux / macOS 直接装即可
- 一个 64K 以上上下文窗口的大模型(后面会讲怎么配置)

2.2 安装步骤(以 Linux/macOS/WSL2 为例)

方式一:pip 安装(最简单,推荐)

1
2
pip install hermes-agent
hermes postinstall     # 可选:自动安装 Node.js、浏览器、ripgrep、ffmpeg

方式二:官方安装脚本(跟踪 main 分支,获取最新功能)

1
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

安装完成后重载 shell:

1
2
source ~/.bashrc   # 如果用 bash
source ~/.zshrc    # 如果用 zsh

Windows + WSL2 注意事项:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
1. 先安装 WSL2(PowerShell 管理员模式):
   wsl --install

2. 装完重启后进入 WSL:
   wsl

3. 然后在 WSL 里执行上面的安装命令

4. 图形界面:WSL2 需要 X Server 才能显示图形窗口
   如果要跑浏览器自动化,需要配置 WSLg 或用 vcxsrv

2.3 初始化配置

1
hermes setup

这个交互式向导会引导你完成:

  • 选择 AI 模型供应商
  • 配置 API Key
  • 设置终端工具集
  • 基本配置确认

2.4 配置 AI 模型供应商

这是最关键的一步。Hermes 支持非常多的模型供应商:

供应商 说明 适合场景
Nous Portal Nous Research 自家平台,零配置 快速上手
OpenAI GPT-4o / GPT-5 系列 通用对话、复杂推理
Anthropic Claude 系列 高质量写作、长上下文
OpenRouter 聚合数十个模型,一个 API key 搞定 灵活切换模型
阿里云 DashScope 通义千问(Qwen)系列 中文场景、国内用户
DeepSeek DeepSeek 系列 性价比高
Ollama 本地模型 隐私敏感、无网络环境
vLLM / SGLang 自托管模型 企业内网部署

连接 Ollama 本地模型(最推荐的免费方案):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 先确保 Ollama 已经跑起来,下载需要的模型
ollama pull qwen3.5:27b
ollama pull gemma4

# 然后在 Hermes 里配置
hermes model
# → 选择 "Custom endpoint (enter URL manually)"
# → URL 填:http://127.0.0.1:11434/v1
# → API Key 留空(Ollama 不需要)
# → 模型名填:qwen3.5:27b(或 gemma4)

Windows 用户如果 Ollama 在宿主机而非 WSL2 里,需要把 URL 改成 Windows 的 IP:

1
2
3
4
5
# 在 PowerShell 里查本机 IP
ipconfig

# Ollama 默认端口 11434,URL 改成:
# http://<你的IP>:11434/v1

2.5 验证安装

1
2
3
hermes
# 或者用新版 TUI 界面(推荐)
hermes --tui

第一次运行应该能看到欢迎横幅,显示你选的模型、可用工具集、已安装的 Skills。

如果看到回复正常,恭喜,安装成功了!


三、核心概念:理解 Hermes 的设计逻辑

在开始用之前,先理解几个核心概念,能让你少走很多弯路。

3.1 Session(会话)——对话不丢失

Hermes 的每个对话都是一个 Session,存储在 SQLite 数据库里(~/.hermes/state.db)。

1
2
3
hermes                  # 开始新对话
hermes --continue       # 继续上一个对话(-c 是短写法)
hermes sessions list    # 查看所有历史会话

这解决了一个很大的痛点:用 ChatGPT 的时候,聊着聊着换了话题,回头想找之前的内容就找不到了。Hermes 的 Session 可以随时恢复,还能按关键词搜索历史对话。

3.2 Memory(记忆系统)——让 AI 记住你

Hermes 有两套持久化记忆:

文件 用途 字符上限 大约 Token
MEMORY.md AI 的个人笔记:环境事实、项目规范、学到的东西 2,200 ~800
USER.md 用户画像:偏好、交流风格、技能水平 1,375 ~500

文件位置:~/.hermes/memories/

记忆在系统提示词里的样子:

1
2
3
4
══════════════════════════ MEMORY (personal notes) [67% — 1,474/2,200 chars] ══════════════════════════
User's project is a Rust web service at ~/code/myapi using Axum + SQLx
This machine runs Ubuntu 22.04, has Docker installed
User prefers concise responses, dislikes verbose explanations

为什么有容量限制? 因为记忆内容会进入每次对话的系统提示词,容量太大会浪费 Token、增加延迟、浪费钱。限制是刻意设计的。

什么时候该存记忆?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
应该存:
  ✓ 用户偏好:"我喜欢 TypeScript,不喜欢 JavaScript"
  ✓ 环境事实:"这台服务器是 Debian 12,跑着 PostgreSQL 16"
  ✓ 修正:"不要用 sudo 运行 Docker,用户在 docker 组里"
  ✓ 项目规范:"项目用 tabs,120字符宽限,Google 风格文档注释"
  ✓ 学到的教训:"测试服务器 SSH 端口是 2222,不是默认的 22"
  ✓ 重要事实:"我的 API key 每月轮换一次"

不应该存:
  ✗ 太模糊的信息:"用户问了 Python" —— 说了等于没说
  ✗ 能重新搜到的:"Python 3.12 支持 f-string 嵌套" —— 随时能查
  ✗ 大段原始数据:代码块、日志、数据表 —— 记忆装不下
  ✗ 单会话的临时信息:临时文件路径、一次性的调试上下文

3.3 SOUL.md——定义 AI 的人格

SOUL.md 是 Hermes 的人格定义文件,它决定了 AI 怎么说话、什么风格、什么态度。

文件位置:~/.hermes/SOUL.md

一个好的 SOUL.md 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Personality

你是一个务实的老工程师,有清晰的判断力。
你追求真相、清晰和有用,而不是礼貌性的废话。

## 风格

- 直接但不冷漠
- 喜欢干货,不喜欢废话
- 发现问题会直接指出来
- 不确定的事情会直接说"我不确定"
- 除非需要深度解释,否则保持简洁

## 避免

- 拍马屁
- 过度热情或 hype 语言
- 用户说错了还顺着说
- 过度解释显而易见的事情

## 技术态度

- 简单系统优于复杂系统
- 关注真实可用的方案,不追求理想架构
- 边界情况是设计的一部分,不是最后清理

和 AGENTS.md 的区别:

1
2
SOUL.md  → 身份认同、语气、沟通风格、性格(持久跟随,不分项目)
AGENTS.md → 项目架构、编码规范、工具偏好、仓库约定(跟项目走)

简单记忆法:跟你这个人走的 → SOUL.md;跟这个项目走的 → AGENTS.md。

3.4 Skills——按需加载的知识包

Skills 是 Hermes 的可插拔知识系统。你可以理解为"给 AI 装备的专业工具书"。

1
2
hermes skills search kubernetes    # 搜索某个领域的 skill
hermes skills install openai/k8s   # 安装某个 skill

内置的 Skills 包括:plan(生成实施计划)、excalidraw(画图)、github-pr-workflow(GitHub PR 工作流)、gif-search(搜 GIF)……

Skills 支持渐进式加载(Progressive Disclosure),不会一次性把全部内容塞进上下文:

1
2
3
Level 0: skills_list()      → 只返回名称和描述列表(~3k tokens)
Level 1: skill_view(name)    → 加载完整 Skill 内容(按需)
Level 2: skill_view(name, path) → 加载 Skill 的某个具体文件

四、持久化任务系统——像 cron 一样工作

这是 Hermes 最强大的功能之一:自然语言创建定时任务

4.1 基本用法

方式一:对话中直接说

1
2
3
4
用户:每天早上 9 点,帮我检查 GitHub 有没有什么重要的新 issue,然后发摘要到我的 Telegram。

Hermes:好的,我已经创建了一个每天 9 点的定时任务,检测新的 GitHub issues 并汇总。
        任务 ID:abc123,你之后可以用 /cron list 查看和 管理它。

方式二:用 /cron 命令

1
2
3
4
/cron add 30m "提醒我站起来活动一下"
/cron add "every 2h" "检查服务器状态"
/cron add "every 1h" "检查有没有新的博客文章" --skill blogwatcher
/cron add "every 1h" "同时用两个 skill" --skill blogwatcher --skill maps

方式三:用 hermes 命令行

1
2
3
hermes cron create "every 2h" "检查服务器状态"
hermes cron create "every 1d at 09:00" "检查 GitHub issues" --skill github
hermes cron create "every 1d at 09:00" "同时用两个 skill" --skill blogwatcher --skill maps --name "早间简报"

4.2 定时表达式

Hermes 支持自然语言和标准 cron 表达式:

1
2
3
4
5
6
7
30m          → 30分钟后
every 2h     → 每2小时
every 1d at 09:00  → 每天9点
every 1w     → 每周
every 6h     → 每6小时
"0 9 * * *"  → 标准 cron 表达式:每天9点
"*/15 * * * *"  → 标准 cron:每15分钟

4.3 任务生命周期管理

1
2
3
4
5
6
7
8
9
/cron list              # 列出所有任务
/cron pause <job_id>    # 暂停任务
/cron resume <job_id>   # 恢复任务
/cron run <job_id>      # 手动触发一次
/cron edit <job_id> --schedule "every 4h"   # 修改执行周期
/cron edit <job_id> --prompt "新的任务描述"  # 修改任务内容
/cron edit <job_id> --skill blogwatcher      # 添加 skill
/cron edit <job_id> --remove-skill blogwatcher  # 移除 skill
/cron remove <job_id>  # 删除任务

4.4 在指定项目目录运行

默认情况下,定时任务在系统默认目录运行,不加载项目配置。

如果想在特定项目目录下运行(比如加载 AGENTS.mdCLAUDE.md):

1
2
3
hermes cron create "every 1d at 09:00" \
  "检查 CI 健康状态,汇总 PR" \
  --workdir /home/me/projects/acme

重要:workdir 的任务会串行执行(而不是并行),因为多个任务同时修改 TERMINAL_CWD 会产生冲突。

4.5 多平台结果推送

定时任务的结果不只是存在本地,可以直接推送到各个平台:

1
2
3
4
发送到源对话    → 在哪个对话创建的就发回哪里(默认)
发送到 Telegram → 配置好 Telegram Bot 后直接推送消息
发送到 Discord  → Webhook 方式发送到指定频道
发送到文件      → 写入本地文件

在平台对话里创建的定时任务,会默认推送到那个平台。

4.6 无 Agent 模式

定时任务有两种运行模式:

1
2
有 Agent 模式(默认):完整 LLM 参与,执行复杂判断和推理
无 Agent 模式:纯脚本执行,stdout 直接推送,零 LLM 消耗

无 Agent 模式适合简单到不需要 AI 判断的重复性工作:

1
2
3
4
5
6
7
8
# 通过 cronjob tool 调用:
cronjob(
    action="create",
    prompt="tail -100 /var/log/app.log | grep ERROR",
    schedule="every 5m",
    agent_enabled=False,  # 关闭 Agent,只跑脚本
    name="错误日志监控"
)

五、分角色饲养——让多个 AI 同时为你工作

这是 Hermes 最有趣的设计:同一个 AI 实例,可以养出不同"性格"的副手

5.1 为什么需要分角色

一个人工作的时候,通常会有多种场景:

1
2
3
4
工作模式  → 需要严谨、专业、注重细节
学习模式  → 需要耐心解释、能举例子
个人助理模式  → 需要简洁、快速、不废话
创意头脑风暴  → 需要跳脱、不拘一格

给每个场景配一个专属的 AI 人格,效率会高很多——不用每次都从头解释"我今天想让你怎么工作"。

5.2 内置角色切换

Hermes 内置了很多有趣的角色,可以随时切换:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
/personality helpful     # 友好的通用助手
/personality concise     # 简洁直接,只说重点
/personality technical   # 技术专家模式,细节丰富
/personality creative    # 创意头脑风暴
/personality teacher     # 耐心的老师,举例清晰
/personality kawaii      # 可爱风格,星星眼 ✨
/personality catgirl     # 猫娘风格, nya~
/personality pirate      # 海盗船长风格
/personality shakespeare # 莎士比亚戏剧风格
/personality noir        # 黑色电影侦探风格
/personality uwu         # 极可爱风格
/personality philosopher # 哲学家模式,深沉思考
/personality hype        # 超级亢奋风格 !!!

示例效果:

1
2
3
4
5
6
7
8
9
/personality pirate
用户:解释一下什么是 REST API
船长 Hermes:
"Ahoy there, matey! Ye be askin' about REST APIs, aye?
Arr, let me spin ye a tale... A REST API be like a tavern's service bell —
ye ring it with a proper request, the barkeep brings ye the right grog.
GET be checkin' the menu, POST be orderin' a new drink,
PUT be changin' yer order, DELETE be cancellin' the tab.
Arr! 🦜"

5.3 自定义角色

方式一:通过 SOUL.md 设置全局默认人格

编辑 ~/.hermes/SOUL.md

1
2
3
4
5
# Hermes - 你的默认人格

你是一个务实的技术人,讲究效率,追求真相。
你的风格:直接、有深度、偶尔带点幽默。
你不拍马屁,有问题直接说。

方式二:通过 config.yaml 定义命名角色

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# ~/.hermes/config.yaml
agent:
  personalities:
    codereviewer: >
      你是一个严谨的代码审查员。
      你的工作是找出 bug、安全漏洞、性能问题和不清晰的设计。
      你直接、准确、有建设性。
      审查时先说结论,再给具体改进建议。

    dataanalyst: >
      你是一个专业的数据分析师。
      你擅长用数据讲故事,习惯用图表辅助说明。
      你的分析遵循"假设-验证-结论"的流程。
      输出结构:发现 → 数据支撑 → 建议

    writingassistant: >
      你是一个写作助手,风格清晰简洁。
      你擅长把复杂的事情用简单的语言说清楚。
      你会主动建议删除废话,简化表达。

然后切换:

1
2
3
/personality codereviewer   # 切换到代码审查员模式
/personality dataanalyst    # 切换到数据分析师模式
/personality writingassistant  # 切换到写作助手模式

方式三:每个项目一套角色

在项目根目录放一个 SOUL.md,这个项目就自动使用该角色:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
~/code/my-blog/
├── SOUL.md       # 这个项目专属人格:博客写作者
├── AGENTS.md    # 项目规范
└── content/
    └── ...

~/code/my-api/
├── SOUL.md       # 这个项目专属人格:后端工程师
├── AGENTS.md    # 项目规范
└── src/
    └── ...

原理: Hermes 会从当前工作目录加载 SOUL.mdAGENTS.md。所以你在哪个目录启动对话,就会用哪个目录的配置。

5.4 多角色协作工作流

一个实际的工作流示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
场景:开发一个新功能

角色1:Architect(架构师)
  /personality technical
  "帮我设计一个用户积分系统的架构"
  → 输出:整体设计、数据库结构、API 规范

角色2:Developer(开发者)
  /personality default(你的全局 SOUL)
  "按照刚才的架构,实现这个功能"
  → 输出:具体代码实现

角色3:CodeReviewer(代码审查员)
  /personality codereviewer
  "审查刚才写的代码,重点关注安全性和性能"
  → 输出:审查意见、改进建议

角色4:TestEngineer(测试工程师)
  "为这个功能设计测试用例"
  → 输出:单元测试、集成测试、E2E 测试用例

这种工作流的精髓在于:每个角色都有自己专注的视角,不会混在一起处理。你不需要在"写代码"和"检查代码"之间切换上下文,切换角色就行。

5.5 角色的记忆隔离

不同角色可以有不同的记忆:

1
2
3
4
5
6
7
8
9
Architect 的 MEMORY.md:
  - 熟悉微服务架构,有 5 年系统设计经验
  - 偏好用图表辅助设计
  - 关注可扩展性和技术债务

Developer 的 MEMORY.md:
  - 熟悉 Python 和 Go
  - 偏好 TDD 开发方式
  - 关注代码可读性和测试覆盖

注意: 角色的记忆存储在同一个 ~/.hermes/memories/ 目录,但可以在对话中通过不同 Session 隔离使用。

5.6 Auto-Routing:消息自动路由到对应角色

Hermes 正在开发一个很酷的功能:根据消息内容自动路由到最合适的角色

1
2
3
4
5
6
7
8
你发消息:"帮我优化一下数据库查询性能"
  → 自动路由到 "Database Expert" 角色(加载数据库优化相关的 SOUL)

你发消息:"写一封给客户的道歉邮件"
  → 自动路由到 "Writing Assistant" 角色(加载写作规范)

你发消息:"这个模块的代码有问题"
  → 自动路由到 "Code Reviewer" 角色

目前这个功能还在发展中,但设计思路已经明确了:通过轻量级分类,自动把消息路由到对应的角色 Session,每个角色有自己独立的系统提示词和工作上下文。


六、进阶技巧

6.1 工具集(Toolsets)按平台配置

不同平台(CLI、Telegram、Discord……)可以开启不同的工具集:

1
hermes tools     # 交互式配置每个平台启用哪些工具集

可用工具集:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
terminal       → 终端命令执行
read_file      → 读取文件
write_file     → 写文件
patch          → 补丁编辑
search_files   → 搜索文件
execute_code   → 执行代码
web            → 网页浏览
browser        → 浏览器自动化
memory         → 记忆管理
skills         → Skills 管理
cronjob        → 定时任务管理

安全建议: Telegram/Discord 等公共平台不要开启 write_fileterminal,只开 read_fileweb。CLI 可以全开。

6.2 MCP 服务器接入

MCP(Model Context Protocol)可以让 Hermes 连接各种外部服务:

1
2
3
4
5
6
7
# ~/.hermes/config.yaml
mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxxx"

接入后,Hermes 可以直接操作你的 GitHub 仓库、数据库、各种 API——不需要写额外的集成代码。

6.3 记忆满了怎么办

MEMORY.md 快满时(超过 80%),需要整理:

1
2
3
4
5
# 查看当前记忆使用量
# (在系统提示词头部可以看到百分比)

# 让 Hermes 自动整理:
"我的记忆快满了,帮我整理一下,删除不重要的,合并相关的"

手动整理技巧:

1
2
3
合并多个相关条目 → 3 条"项目用 X" 可以合并成 1 条综合描述
删除过期条目 → "测试服务器 IP 是 10.0.1.50" 这种如果服务器已经下线就删掉
精简冗余表达 → "这个项目使用 Python" 变成 "项目:~/code/api,Python + FastAPI"

6.4 会话搜索

如果某个信息不在记忆里,但记得在之前的对话中聊过:

1
2
hermes sessions list   # 列出所有历史会话
# 找到相关的会话后,Hermes 可以滚动浏览该会话的完整内容

注意: 记忆(MEMORY.md)存的是关键事实,Session Search 存的是所有对话历史。前者是精心挑选的,后者是完整的。

持久记忆 会话搜索
容量 ~1,300 tokens 无限制(所有历史)
速度 即时(系统提示词里) ~20ms(FTS5 搜索)
成本 每次对话都消耗 Token 免费(本地 SQLite)
用途 关键事实始终可用 找具体讨论内容

6.5 Checkpoints(快照回滚)

Hermes 在修改文件之前会自动打快照,出问题可以回滚:

1
/rollback   # 回滚到上一次快照

6.6 代理和回退策略

可以配置多个模型供应商,设置优先级:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# ~/.hermes/config.yaml
model:
  default: anthropic/claude-sonnet-4.6
  provider_routing:
    enabled: true
    strategy: cost # 按成本排序,或 speed / quality
    fallback:
      - provider: openai
        model: gpt-4.1
      - provider: deepseek
        model: deepseek-chat

主模型出问题,自动切换到备选模型,不中断工作。


七、实际工作流示例

7.1 日常开发工作流

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
早上 9:00(定时任务):
  → 自动检查 GitHub 新 PR、新 Issue、新 CI 状态
  → 汇总发到 Discord 频道

上午:
  /personality technical
  "帮我分析 ~/code/api 的性能瓶颈"
  → 架构分析,输出改进建议

下午:
  /personality codereviewer
  "帮我 review 这几个 PR:#123, #124, #125"
  → 详细代码审查,输出意见

下班前:
  /personality default
  "把今天的进度整理成工作日志,写到 ~/notes/daily/2026-05-05.md"
  → 自动生成工作总结

7.2 内容创作工作流

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
/personality writingassistant
"我要写一篇关于 Kubernetes 持久化卷的博客,帮我列大纲"
→ 输出:文章结构、每个章节的核心论点、推荐配图方向

/plan "用上一个大纲,写一篇 3000 字的技术博客"
→ 输出:Markdown 格式完整文章

/personality technical
"帮我检查这篇文章的技术准确性,重点检查 Kubernetes PV/PVC 部分"
→ 输出:技术校验意见

/hermes acp   # 在 VS Code 里直接查看和编辑生成的内容

7.3 个人知识管理

1
2
3
"帮我把 ~/docs 目录下的所有 markdown 文件整理成一个知识图谱,输出到 ~/notes/knowledge-map.md"
"每周日 20:00 扫描一遍我的笔记目录,找出这周新加的内容,汇总更新"
"帮我建立一个书签知识库,分类整理我常看的技术博客"

八、常见问题与排障

8.1 Hermes 启动后没有回复或回复异常

1
2
3
# 按顺序排查
hermes doctor          # 诊断配置问题
hermes model           # 确认模型供应商和 API Key 配置正确

8.2 自定义 Endpoint(Ollama/vLLM)返回乱码

1
2
3
4
5
6
7
8
# 常见原因:
# 1. Base URL 写错了(结尾多了/或少了一些路径)
#    正确:http://127.0.0.1:11434/v1  (注意是 /v1,不是根路径)
# 2. 模型名称拼写错误
#    检查 ollama list 确认实际模型名

# 先用 curl 验证 endpoint 是否正常
curl http://127.0.0.1:11434/v1/models

8.3 定时任务没有执行

1
2
3
hermes gateway status   # 检查 gateway 是否在运行(定时任务依赖 gateway)
hermes cron list        # 确认任务确实存在
hermes cron run <id>    # 手动触发一次,看错误信息

8.4 记忆没有保存

1
2
3
4
5
6
7
8
# 检查会话是否正常保存
hermes sessions list

# 检查记忆文件权限
ls -la ~/.hermes/memories/

# 如果文件不存在或权限不对,重建
hermes memory setup

8.5 WSL2 下权限问题

1
2
3
4
5
# Windows 文件系统(/mnt/c)可能有权限问题
# 建议把 Hermes 配置放在 WSL 文件系统里,不要放在 /mnt/c 下

# 检查 HERMES_HOME
echo $HERMES_HOME   # 应该在 ~/.hermes,不是 /mnt/c/...

九、配置参考

9.1 完整 config.yaml 示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# ~/.hermes/config.yaml

# 模型配置
model:
  default: anthropic/claude-opus-4.5
  provider_routing:
    enabled: false
    fallback:
      - provider: openai
        model: gpt-4.1
      - provider: deepseek
        model: deepseek-chat

# 记忆配置
memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 2200
  user_char_limit: 1375

# 终端配置
terminal:
  backend: local # local / docker / ssh
  # backend: docker  # 安全隔离用 docker

# Agent 配置
agent:
  # 内置人格定义
  personalities:
    codereviewer: >
      你是严格的代码审查员,关注安全性、性能、可读性。
      发现问题直接说,不绕弯子。

# MCP 服务器
mcp_servers:
  # github:
  #   command: npx
  #   args: ["-y", "@modelcontextprotocol/server-github"]
  #   env:
  #     GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

9.2 关键环境变量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# ~/.hermes/.env

# Anthropic
ANTHROPIC_API_KEY=sk-ant-xxxx

# OpenAI
OPENAI_API_KEY=sk-xxxx

# OpenRouter
OPENROUTER_API_KEY=sk-or-v1-xxxx

# 阿里云(通义千问)
DASHSCOPE_API_KEY=sk-xxxx

# DeepSeek
DEEPSEEK_API_KEY=sk-xxxx

# Ollama(本地,无需 API Key)
OLLAMA_BASE_URL=http://127.0.0.1:11434/v1

十、总结

用 Hermes Agent 这段时间,我最大的感受是:它不只是一个 AI 对话工具,而是一个可以"养成"的工作伙伴。

1
2
3
4
5
记忆 → 记住你的偏好和环境,不用每次都重新解释
角色 → 不同场景用不同模式,不用切换上下文
定时任务 → 把重复劳动自动化,空出时间做真正需要思考的事
Session → 对话不丢失,随时可以继续
Skills → 把工作流封装成可复用的工具包

如果你也在找一款能真正融入日常工作的 AI 助手,建议先从安装开始,配置好一个趁手的模型,然后开一个真实的对话试试。

安装文档:https://hermes-agent.nousresearch.com/docs/getting-started/quickstart

有问题可以在 GitHub 上提 Issue:https://github.com/NousResearch/hermes-agent


关联文章:

  • 《n8n 自动化工具与大模型集成实战指南》—— 另一个强大的自动化工具,适合图形化工作流
  • 《大模型赋能:独立开发 AI 应用全指南》—— 如何用 LLM API 构建自己的 AI 应用
  • 《从零理解 Transformer:让大模型听懂人话的技术底层》—— 理解 AI 助手背后的原理
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计