Topic Atlas入门

Hermes Agent

从一行安装命令,到完成一次真实的工具调用

Nous Research 开源的自主 AI Agent(MIT 许可,Python 编写)。它不是聊天框,而是常驻的、能自己动手干活的程序——可调用终端、文件、浏览器等工具完成任务,并具备记忆与技能自生长能力。按官方文档整理出七步学习路径:装好、配模型、聊起来、用技能、管记忆、接 MCP、连消息平台。每一步都有明确学习目标、官方原文链接,以及可逐条勾选的验收清单。

7

学习步骤

35

验收清单

MIT

开源许可

已勾选 0 / 35 项
0%
01

装好它

要学到什么: 在本地或服务器装好 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)
组件用途安装位置
uvPython 包管理器 + 虚拟环境~/.local/share/hermes/
Python 3.11+Hermes 本体运行环境隔离 venv
Node.js v26浏览器自动化(Playwright)随安装器
ripgrep项目内快速文件搜索系统 PATH
ffmpegTTS / 音频转换系统 PATH
hermes CLI全局命令入口~/.local/bin 或 /usr/local/bin
提示 · Windows 用户推荐先装 WSL2,再在 WSL2 里跑上面的 curl 脚本;想用桌面版也可从官网下载 Hermes Desktop 安装器。
bash# 安装完成后,重载 shell 让 PATH 生效
source ~/.bashrc   # 或 source ~/.zshrc

# 验证
hermes --version
hermes --help

# 官方自检:会检查依赖、模型配置、工具链
hermes doctor
注意 · 若提示 command not found,先确认安装脚本输出的二进制路径。普通用户默认在 ~/.local/bin,root 模式在 /usr/local/bin。把对应路径加入 ~/.bashrc 或 ~/.zshrc 后重载 shell。

如果你需要彻底重装,可以先删除 ~/.hermes/ 和 ~/.local/share/hermes/(注意备份记忆),再重新跑安装脚本。

验收清单 · 没通过就别往下走

02

配一个模型

要学到什么: 搞懂 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 Portalhermes model → OAuth 登录省心一站式,工具多
Anthropic (Claude)OAuth 或 ANTHROPIC_API_KEY代码能力强,稳定
OpenRouterOPENROUTER_API_KEY模型选择极多
DeepSeekDEEPSEEK_API_KEY性价比高
阿里云百炼 (Qwen)DASHSCOPE_API_KEY国内低延迟
自定义端点hermes model → Custom endpointOllama / 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
注意 · 最低上下文要求 64K token。Hermes 要把系统提示、工具描述、历史记录、待办任务同时塞进上下文,本地模型(Ollama / llama.cpp)务必把上下文设到至少 64K,否则它会拒绝启动或在长任务中崩溃。
提示 · 刚开始可以用云端大模型(Claude / GPT-4o / DeepSeek-V3)把流程跑通,再切到本地模型降低成本。

验收清单 · 没通过就别往下走

03

跑通第一次对话

要学到什么: 启动 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               # 强制开启新会话
提示 · TUI 里可以用方向键滚动、Tab 切换面板、回车发送。如果鼠标支持,还可以直接点击工具调用展开详情。
注意 · 第一次跑通的标准不是「它回复了」,而是「它在需要时真的调用了工具,并且多轮对话不丢上下文」。

验收清单 · 没通过就别往下走

04

用技能,并让它自己长技能

要学到什么: 理解 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
提示 · 想让它长技能,就给它「第一次做、且值得复用」的任务。任务越具体,生成的技能越有用。生成后建议人工review一遍 skill.yaml 的描述和工具列表。
注意 · 自动技能可能包含你的项目路径、私钥提示等敏感信息。提交到公开仓库前务必检查 skill.yaml 和 prompts/。

验收清单 · 没通过就别往下走

05

把记忆管好

要学到什么: 理解 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    # 从备份恢复(按提示选备份文件)
注意 · 记忆有上下文上限,满了会变成「死记忆」——模型检索不到或检索了也占token。建议每月 review 一次 MEMORY.md,删掉过时信息;外部记忆提供商(如向量数据库)可扩展容量,适合长期项目。
提示 · USER.md 里放「你是谁、你喜欢什么」;MEMORY.md 里放「世界是什么样、项目事实」。分开写,检索效率更高。

验收清单 · 没通过就别往下走

06

接 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-sqliteSQLite 查询uvx
mcp-server-githubGitHub Issues/PRuvx / npm
mcp-server-puppeteer浏览器自动化npx -y
注意 · MCP 服务器通常以子进程形式运行,拥有你授予的权限。filesystem 服务器只给它该访问的目录,永远不要把它指向 ~/.ssh 或根目录。
提示 · 排错三板斧:① hermes doctor 看 MCP 是否加载;② 检查 config.yaml 缩进(必须是两个空格);③ 看 ~/.hermes/logs/ 里该 MCP 进程的 stderr。

验收清单 · 没通过就别往下走

07

从不离手的聊天软件里指挥它

要学到什么: 理解 Connector / Gateway 机制,能把 Hermes 接到 Telegram / Discord / 微信 / 飞书等平台,并在手机上安全地触发任务。

Connector 让 Hermes 走出本机终端,进入你每天都在用的聊天软件。连上后,聊天软件就成了远程控制台——在地铁上、床上、咖啡厅里,发一句话就能让服务器上的 Hermes 帮你跑任务。

bashhermes gateway setup   # 交互式连接 Telegram / Discord / 微信 / 飞书等
平台接入方式注意点
TelegramBot Token + Webhook / Long polling需外网可访问或轮询
DiscordBot Token适合小团队
微信个人号协议或企业微信 Webhook个人号有封号风险,建议用小号
飞书自定义机器人 Webhook企业场景最稳
yaml# ~/.hermes/config.yaml 片段
connectors:
  telegram:
    bot_token: ${TELEGRAM_BOT_TOKEN}
    allowed_users:
      - xiaolouchunyu   # 只允许指定用户控制,安全第一
注意 · 一旦 Hermes 连到公网消息平台,必须配置 allowed_users 或类似白名单。否则任何人给你发消息都能控制你机器上的 Agent,这是巨大的安全隐患。
提示 · 经验法则:先让一次完整对话跑通,再叠加 gateway / cron / skills / 语音等功能。出问题按 hermes doctor → hermes model → hermes setup 顺序恢复。

验收清单 · 没通过就别往下走

勾掉一步算一步,进度会记在你的浏览器里。

← 返回学习路径