Hermes Agent
从一行安装命令,到完成一次真实的工具调用
Nous Research 开源的自主 AI Agent(MIT 许可,Python 编写)。它不是聊天框,而是常驻的、能自己动手干活的程序——可调用终端、文件、浏览器等工具完成任务,并具备记忆与技能自生长能力。按官方文档整理出七步学习路径:装好、配模型、聊起来、用技能、管记忆、接 MCP、连消息平台。每一步都有明确学习目标、官方原文链接,以及可逐条勾选的验收清单。
7
学习步骤
35
验收清单
MIT
开源许可
装好它
要学到什么: 在本地或服务器装好 Hermes,理解安装器做了什么,让 hermes 命令全局可用,并跑通官方自检。
Hermes 的安装器是一条 curl / PowerShell 脚本,它会自动搭建一个隔离的运行环境。你不需要手动安装 Python、Node、ripgrep 或 ffmpeg。
bash# Linux / macOS / WSL2 / Android(Termux)
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
# Windows 原生(在 PowerShell 中运行)
iex (irm https://hermes-agent.nousresearch.com/install.ps1)| 组件 | 用途 | 安装位置 |
|---|---|---|
| uv | Python 包管理器 + 虚拟环境 | ~/.local/share/hermes/ |
| Python 3.11+ | Hermes 本体运行环境 | 隔离 venv |
| Node.js v26 | 浏览器自动化(Playwright) | 随安装器 |
| ripgrep | 项目内快速文件搜索 | 系统 PATH |
| ffmpeg | TTS / 音频转换 | 系统 PATH |
| hermes CLI | 全局命令入口 | ~/.local/bin 或 /usr/local/bin |
bash# 安装完成后,重载 shell 让 PATH 生效
source ~/.bashrc # 或 source ~/.zshrc
# 验证
hermes --version
hermes --help
# 官方自检:会检查依赖、模型配置、工具链
hermes doctorcommand not found,先确认安装脚本输出的二进制路径。普通用户默认在 ~/.local/bin,root 模式在 /usr/local/bin。把对应路径加入 ~/.bashrc 或 ~/.zshrc 后重载 shell。如果你需要彻底重装,可以先删除 ~/.hermes/ 和 ~/.local/share/hermes/(注意备份记忆),再重新跑安装脚本。
验收清单 · 没通过就别往下走
配一个模型
要学到什么: 搞懂 Provider / Model / Base URL / API Key 四个概念,至少配好一个可用的推理来源,并理解为什么本地模型需要 ≥64K 上下文。
Hermes 的推理能力完全来自你配置的模型。它本身不内置模型,因此第一步就是告诉它去哪里调用 LLM。
bash# 交互式向导:选 provider、OAuth 登录或填 API Key
hermes model最省事路径是 Nous Portal:一个订阅覆盖 300+ 模型,还附带网页搜索、图像、TTS 等 Tool Gateway。
bashhermes setup --portal # 一键登录并开启 Tool Gateway| Provider | 配置方式 | 适用场景 |
|---|---|---|
| Nous Portal | hermes model → OAuth 登录 | 省心一站式,工具多 |
| Anthropic (Claude) | OAuth 或 ANTHROPIC_API_KEY | 代码能力强,稳定 |
| OpenRouter | OPENROUTER_API_KEY | 模型选择极多 |
| DeepSeek | DEEPSEEK_API_KEY | 性价比高 |
| 阿里云百炼 (Qwen) | DASHSCOPE_API_KEY | 国内低延迟 |
| 自定义端点 | hermes model → Custom endpoint | Ollama / vLLM / 私有模型 |
yaml# 示例:~/.hermes/config.yaml 中手动写模型配置
model:
provider: openrouter
model: anthropic/claude-3.5-sonnet
api_key: ${OPENROUTER_API_KEY}
base_url: https://openrouter.ai/api/v1
# 若用 Ollama,记得把上下文设到 ≥64K
# ollama run llama3.1:8b --ctx-size 65536验收清单 · 没通过就别往下走
跑通第一次对话
要学到什么: 启动 Hermes 会话,熟悉 TUI 与 CLI 两种界面,验证它能回复、能在需要时调用工具,并且能正确恢复上一次会话。
bashhermes # 经典 CLI
hermes --tui # 现代 TUI(推荐,支持鼠标 / 覆盖层 / 快捷键)启动后,欢迎横幅会显示当前模型、可用工具、已装 skill。建议先用一个具体且易验证的 prompt 测试,而不是泛泛地问「你好」。
Summarize this repo in 5 bullets and tell me what the main entrypoint is.如果它判断需要读文件,你会在终端看到工具调用记录:例如 read_file、run_shell、search_web。工具调用成功,模型再把结果组织成最终回答,这就是 Agent 与聊天机器人的本质区别。
bash# 会话管理常用命令
hermes --continue # 或 hermes -c,恢复最近一次会话
hermes sessions # 列出所有会话
hermes --session <id> # 进入指定会话
hermes --new # 强制开启新会话验收清单 · 没通过就别往下走
用技能,并让它自己长技能
要学到什么: 理解 Skill 的目录结构与调用方式,能在会话里主动调用技能,并知道 Hermes 如何在复杂任务后自动把做法沉淀为可复用技能。
技能(Skill)是封装好的可复用流程。你可以把它理解为「Agent 的函数库」。
bash/skills browse # 查看全部可用技能
/技能名 # 直接调用,例如 /git-commit-helper
/skills create 技能名 # 手动创建空技能完成复杂任务后,Hermes 会自问:「刚才的做法以后能复用吗?」如果可以,它会自动生成一个技能写入 ~/.hermes/skills/,包括技能描述、示例 prompt、推荐工具集。
yaml# 示例:~/.hermes/skills/write-blog-post/skill.yaml
name: write-blog-post
description: 根据大纲和参考资料,生成一篇结构完整的中文博客文章。
prompt_template: |
用户给了大纲:{{outline}}
参考资料:{{references}}
请按以下结构输出:标题、引言、正文(分小节)、总结。
tools:
- read_file
- search_web
- run_shell验收清单 · 没通过就别往下走
把记忆管好
要学到什么: 理解 Hermes 的持久记忆结构,会编辑 USER.md / MEMORY.md,掌握备份与恢复,并了解外部记忆提供商的接入思路。
记忆让 Agent 跨会话记住你。没有记忆,每次对话都是陌生人;有了记忆,Hermes 会越用越顺手。
bashls ~/.hermes/memories/
# 通常会看到:
# USER.md # 关于你的偏好、习惯、身份
# MEMORY.md # 长期事实、项目背景、重要结论
# sessions/ # 历史会话摘要markdown# USER.md 示例片段
- 作者笔名:小楼春雨
- 博客技术栈:Next.js 14 + TypeScript + Tailwind
- 写作风格:极简、文艺、中文技术叙述
- 不喜欢的表达:过度使用「非常」「其实」
# MEMORY.md 示例片段
- 小楼春雨博客部署在 OpenCloudOS + 宝塔面板
- /running 页面是校园乐跑轨迹生成器(纯前端实现)
- 学习路径模块基于 Topic Atlas 风格bashhermes backup # 定期备份记忆与配置
hermes restore # 从备份恢复(按提示选备份文件)验收清单 · 没通过就别往下走
接 MCP,把外部工具借进来
要学到什么: 理解 MCP(Model Context Protocol)的作用,会在 config.yaml 里接入一个 MCP 服务器,并能把外部工具能力借给 Hermes 使用。
MCP 是 Anthropic 提出的开放协议,让 LLM 以标准方式调用外部工具。Hermes 内置工具之外的能力(数据库、浏览器、文件系统、GitHub 等)都可以通过 MCP 接进来。
yaml# ~/.hermes/config.yaml
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/xiaolou/projects"]
fetch:
command: "uvx"
args: ["mcp-server-fetch"]
sqlite:
command: "uvx"
args: ["mcp-server-sqlite", "--db-path", "/home/xiaolou/notes.db"]保存 config.yaml 后,重启 Hermes,新工具会出现在 /tools 列表里。你可以在 prompt 中直接要求使用这些工具,例如「用 fetch 抓取这个网页并总结」。
| MCP 服务器 | 功能 | 安装方式 |
|---|---|---|
| @modelcontextprotocol/server-filesystem | 指定目录的读写 | npx -y |
| mcp-server-fetch | 抓取任意网页 | uvx |
| mcp-server-sqlite | SQLite 查询 | uvx |
| mcp-server-github | GitHub Issues/PR | uvx / npm |
| mcp-server-puppeteer | 浏览器自动化 | npx -y |
~/.ssh 或根目录。hermes doctor 看 MCP 是否加载;② 检查 config.yaml 缩进(必须是两个空格);③ 看 ~/.hermes/logs/ 里该 MCP 进程的 stderr。验收清单 · 没通过就别往下走
从不离手的聊天软件里指挥它
要学到什么: 理解 Connector / Gateway 机制,能把 Hermes 接到 Telegram / Discord / 微信 / 飞书等平台,并在手机上安全地触发任务。
Connector 让 Hermes 走出本机终端,进入你每天都在用的聊天软件。连上后,聊天软件就成了远程控制台——在地铁上、床上、咖啡厅里,发一句话就能让服务器上的 Hermes 帮你跑任务。
bashhermes gateway setup # 交互式连接 Telegram / Discord / 微信 / 飞书等| 平台 | 接入方式 | 注意点 |
|---|---|---|
| Telegram | Bot Token + Webhook / Long polling | 需外网可访问或轮询 |
| Discord | Bot Token | 适合小团队 |
| 微信 | 个人号协议或企业微信 Webhook | 个人号有封号风险,建议用小号 |
| 飞书 | 自定义机器人 Webhook | 企业场景最稳 |
yaml# ~/.hermes/config.yaml 片段
connectors:
telegram:
bot_token: ${TELEGRAM_BOT_TOKEN}
allowed_users:
- xiaolouchunyu # 只允许指定用户控制,安全第一allowed_users 或类似白名单。否则任何人给你发消息都能控制你机器上的 Agent,这是巨大的安全隐患。hermes doctor → hermes model → hermes setup 顺序恢复。验收清单 · 没通过就别往下走
勾掉一步算一步,进度会记在你的浏览器里。
← 返回学习路径