Hermes-Agent 简明指南

自从OpenClaw发布以来,几乎每周都有新的智能体被创建,尝试它们所有几乎变得不可能。但有一个新智能体引起了很多人包括我的注意。

它在GitHub上只有6k星,相比之下 OpenClaw有307k星(在撰写本文时)。然而,与大多数其他智能体不同,它不是在内存使用上竞争,而是专注于性能。这就是为什么它可能是这个领域唯一真正的OpenClaw竞争对手。

Hermes智能体是由Nous Research创建的完全基于Python的开源智能体。它最有趣的功能之一是能够随时间学习。随着你的使用,智能体可以将其学到的知识转化为可重用的技能,通过经验改进它们,存储有用的信息,甚至搜索之前的对话。这使它能够更好地理解你在不同会话中的交互方式。

Nous Research是一个AI研究实验室和去中心化AI初创公司,以开发开源大语言模型(LLM)而闻名,例如Hermes-4-405BHermes-4-70B。你可以从Hugging Face下载它们的模型或使用它们的API来尝试这些模型。

然而,Hermes智能体并不限于这些模型。它像OpenClaw一样多才多艺,你可以使用OpenAI、OpenRouter或Nous Research的API密钥来驱动它。如果你有所需的硬件,也可以在本地运行模型,这增加了额外的隐私层。

在本文中,我将逐步指导你如何设置智能体并浏览仓库,以及分享一些有趣的用例和与OpenClaw的主要区别。

让我们开始使用Hermes智能体吧!

1、在VPS上设置Hermes智能体

Hermes适用于Linux、macOS或Windows的WSL,就像OpenClaw一样,最佳方法是在VPS或备用计算机上设置它。

我个人喜欢使用Contabo的Cloud VPS 20。每月仅需6美元,你就能获得12GB RAM和200GB SSD。大多数VPS提供商会询问你想要使用哪个Linux发行版。我通常选择Ubuntu,因为它有最广泛的文档支持。

连接到机器后,你可以用单个命令安装Hermes智能体:

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

它会为你创建一个虚拟环境,包含所有你需要的Python和Node.js依赖。

之后,你只需要重新加载shell:

source ~/.bashrc

Hermes还包括一个入门体验,虽然我发现它比OpenClaw提供的那个不够用户友好。但这并不是真正的问题,因为其他一切都文档完善且组织良好,从仓库结构开始,它看起来像这样:

~/.hermes/
├── config.yaml # 设置(模型、终端、TTS、压缩等)
├── .env # API密钥和密钥
├── auth.json # OAuth提供商凭证(Nous Portal等)
├── SOUL.md # 可选:全局人设(智能体体现这种个性)
├── memories/ # 持久记忆(MEMORY.md、USER.md)
├── skills/ # 智能体创建的技能(通过skill_manage工具管理)
├── cron/ # 定时任务
├── sessions/ # 网关会话
└── logs/ # 日志(errors.log、gateway.log — 密钥自动屏蔽)

你可以将config.yaml视为主文件。从这里,你可以自定义你的智能体,这相当于OpenClaw的openclaw.json

但在探索config.yaml和其他文件之前,最好检查你是否在入门过程中成功添加了提供商密钥,你可以在.env文件中看到这一点。例如,对于OpenRouter,只需在这里复制你的API密钥,如果它还没有的话:

OPENROUTER_API_KEY=sk-or-v1-60a...

这应该足以让你开始与智能体对话了。在下一章中,我们将看到最有用的CLI命令。

2、有用的Hermes智能体CLI命令

Hermes命令非常直观,你可以在文档页面找到它们。在这里,我只强调我发现最有用的那些。

聊天

要与智能体对话,你只需要这个:

hermes

打开聊天后,你会发现数百个斜杠/命令,可以用来替换许多CLI命令。好处是你不需要记住每个命令的作用,因为它们旁边都有简要的描述:

模型

你可以使用以下命令切换当前模型:

hermes model

这将显示所有可用的提供商:

你会找到默认模型,但你也可以输入自定义模型。

在撰写本文时,Nvidia刚刚在OpenRouter上发布了一个完全免费的超快速模型,所以如果你想节省一些积分,可以使用那个:

nvidia/nemotron-3-super-120b-a12b:free

配置

如果你想快速查看你的配置,可以运行这个:

hermes config

你会看到你正在使用的模型、API密钥等等:

你也可以使用config别名来编辑和更新配置:

hermes config # 查看当前配置
hermes config edit # 在编辑器中打开config.yaml
hermes config set KEY VAL # 设置特定值
hermes config check # 检查缺失的选项(更新后)
hermes config migrate # 交互式添加缺失的选项

# 示例:
hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-... # 保存到.env

会话

智能体将你进行的每次对话保存为会话,用于让它随时间学习。你可以使用以下命令列出它们:

# 列出最近的会话(默认:最近20个)
hermes sessions list

# 按平台过滤
hermes sessions list --source telegram

# 显示更多会话
hermes sessions list --limit 50

你也可以导出完整会话,并在需要迁移智能体到另一台机器而不丢失信息时执行更多任务。你可以在文档中找到更多信息。

网关

网关是一个后台进程,持续运行并允许你在Telegram、Slack和其他渠道上聊天。然而,有时它遇到一些问题,需要启动、停止或重启:

hermes gateway start
hermes gateway stop
hermes gateway restart

你也可以配置网关包装的消息平台:

hermes gateway setup

定时任务

很多人用这些智能体做的事情之一是安排任务和设置提醒。这通常通过定时任务完成,可以使用CLI命令列出和编辑:

hermes cron list # 查看定时任务

要删除定时任务,你可以使用以下斜杠命令:

/cron remove <job_id>

更新和卸载

要使用仓库中的最新更改更新Hermes,你可以运行:

hermes update

如果你不喜欢Hermes而想坚持使用OpenClaw,你可以卸载它:

hermes uninstall

目前,Hermes没有auditCLI命令,这是OpenClaw目前的一个优势,因为它可以指导你遵循最佳实践并检查你的智能体是否有可疑之处。

你目前能做的最好的是在聊天中运行\insights,你会得到迄今为止所做一切的摘要,包括总会话数、成本、活跃时间等等。

在下一节中,我将向你展示如何将Hermes连接到Telegram。

3、将Hermes连接到Telegram

开始总是相同的:你需要使用BotFather创建一个新机器人。

  1. 打开Telegram并搜索BotFather。
  2. 发送/newbot
  3. 选择显示名称(例如"Hermes Agent")。
  4. 选择用户名。这必须是唯一的并以bot结尾(例如my_hermes_bot
  5. BotFather回复你的API令牌

现在你需要获取你的用户ID。最快的方法是搜索@userinfobot

现在你可以运行此命令并选择Telegram:

hermes gateway setup

按照步骤添加Bot API令牌和你的令牌ID。否则,你也可以直接将信息粘贴到.env文件中:

TELEGRAM_BOT_TOKEN=8566...
TELEGRAM_ALLOWED_USERS=835...
TELEGRAM_HOME_CHANNEL=835...

如果由于某种原因,你应用了更改但仍无法在Telegram上与你的智能体对话,请尝试重启网关。

现在让我们自定义智能体!

4、自定义Hermes智能体

可以自定义好几样东西。例如,你可以更改智能体的个性、推理努力程度、它使用的终端(本地、Docker等)、记忆设置,以及文本转语音和语音转文本功能等等。

大多数这些都可以通过更改config.yaml文件来配置。

赋予个性

Hermes自带所有这些个性,你可以用斜杠命令选择它们:

personalities:
helpful: 你是一个乐于助人、友好的AI助手。
concise: 你是一个简洁的助手。保持回复简短且切中要点。
technical: 你是一个技术专家。提供详细、准确的技术信息。
creative: 你是一个有创意的助手。跳出框框思考并提供创新的解决方案。
mother: 你是一个慈母般的助手。你是一个乐于助人、耐心、体贴的助手。你总是倾听用户的问题并帮助他们解决。你也非常友好和平易近人。但你直接切入要点,不会说太多废话。不需要说"我的爱人"、"亲爱的"之类的话。
teacher: 你是一个耐心的老师。用例子清晰地解释概念。

你可以直接在config.yaml文件的列表中添加另一个个性。

然后在这里添加新个性的名称:

display:
personality: mother

更改智能体名称

默认情况下,你的智能体被称为"Hermes",但你可以在skins文件夹中更改它。首先,你应该创建一个皮肤.yaml文件,其中包含你的智能体名称:

branding:
agent_name: "Pecas"

我的智能体叫Pecas,所以我把文件命名为pecas-skin.yaml。在config.yaml中,我在display下添加了皮肤名称:

display:
skin: pecas-skin

你可以向皮肤文件添加更多信息,例如欢迎和告别消息、提示符号、自定义UI颜色等等。

启用文本转语音(TTS)

对于TTS,它支持OpenAI、Edge(免费)和ElevanLabs。你可以在config.yaml文件中看到所有三个选项:

tts:
provider: edge
edge:
voice: en-US-AriaNeural
elevenlabs:
voice_id: pNInz6obpgDQGcFmaJgB
model_id: eleven_multilingual_v2
openai:
model: gpt-4o-mini-tts
voice: alloy

与OpenClaw在启用TTS时总是显示音频消息不同,Hermes需要你明确要求音频消息,或者你需要创建一个总是生成音频消息的技能。

对某些用户来说,这可能感觉像是降级。然而,对我来说这实际上更好,因为它节省内存,而且我不需要每次都听到语音消息。

最近,我还在GitHub上发现了一个名为Fish Speech的新TTS和STT模型:

GitHub - fishaudio/fish-speech: SOTA Open Source TTS

你可以在本地使用该模型或使用他们的API。

启用语音转文本(STT)

与TTS类似,STT也在config.yaml文件中配置:

stt:
enabled: true
model: whisper-1

对于此功能,你需要OpenAI API令牌。

现在,让我们看看我添加到Hermes智能体的一些技能和项目示例。

5、创建技能和项目

Hermes自带几个预安装的技能,例如:

  • Claude Code:将编码任务委派给Claude Code(Anthropic的CLI智能体)
  • Apple Notes:通过macOS上的CLI管理Apple Notes
  • Dog Food:对Web应用程序进行系统探索性QA测试
  • YouTube Content:获取YouTube视频转录并将其转换为结构化内容
  • OpenHue:通过OpenHue CLI控制Philips Hue灯光、房间和场景
  • Nano PDF:使用nano-pdf CLI通过自然语言指令编辑PDF

还有更多可用技能,老实说,如果你拥有正确的模型,创建新技能非常容易。

我做的第一件事是用Perplexity Sonar替换Firecrawl网页搜索工具。不仅因为我喜欢Perplexity提供摘要信息的方式,还因为我想在我的设置中使用更少的API。所以我可以重复使用我的OpenRouter API密钥来使用Sonar。

使用带有OpenRouter的Perplexity的SKILL.md文件在这里:

---
name: perplexity-web-search
description: 配置Hermes使用Perplexity(通过OpenRouter)进行网页搜索,替代Firecrawl
version: 1.0.0
author: Pecas
license: MIT
metadata:
hermes:
tags: [web-search, perplexity, openrouter, configuration]
related_skills: [duckduckgo-search]
---

# Perplexity网页搜索

配置Hermes使用Perplexity的`sonar-pro`模型通过OpenRouter进行网页搜索,替代Firecrawl。

## 概述

- **默认搜索后端**:通过OpenRouter的Perplexity sonar-pro
- **需要**:环境变量OPENROUTER_API_KEY
- **替代模型**:llama-3.1-sonar-small-128k-online、llama-3.1-sonar-large-128k-online

## 配置步骤

1. 确保`OPENROUTER_API_KEY`已设置在你的环境中
2. 更新`web_tools.py`以使用Perplexity客户端替代Firecrawl
3. 使用OPENROUTER_API_KEY要求注册工具

## 关键组件

### Perplexity客户端

使用带有OpenRouter基础URL的AsyncOpenAI:
base_url: https://openrouter.ai/api/v1 model: perplexity/sonar-pro

### URL提取

Perplexity在回复末尾返回来源。使用正则表达式提取:
- 来源格式:`- Source Name: https://URL`
- 引用格式:`[N](https://URL)`

## 测试

```bash
cd ~/.hermes/hermes-agent 
PYTHONPATH=. 
python3 -c "from tools.web_tools import web_search_tool; print(web_search_tool('query', 3))"
```

## 注意事项

- web_extract仍然使用Firecrawl
- web_search需要OPENROUTER_API_KEY
- Perplexity返回带有来源的完整答案,而不仅仅是URL

你也可以使用Hermes进行氛围编码项目和Web应用程序。

例如,我创建了一个类似Tricount的脚本,在与女友共享的Telegram群组中使用。我给它提示,遵循与Tricount类似的逻辑(我称之为Hermescount)。这是Telegram上固定的用户手册消息:

我还生成了一个SKILL.md文件,所以我可以与社区分享Hermescount。

在我安装的其他项目和技能中,有一个对于获取最新信息特别有用,例如技术职位列表、技术新闻等等,那就是Apify MCP技能。

我也只是要求Hermes基于这个JSON文件创建它,你可以在Apify MCP页面底部找到:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=actors,docs,get-dataset,dadhalfdev/techcrunch-scraper-per-event,dadhalfdev/futurism-scraper-per-event",
"headers": {
"Authorization": "Bearer <your-apify-token>"
}
}
}
}

它需要一个Apify令牌。如果你还没有,可以在这里创建账户。

6、结束语

我一直在使用OpenClaw和Hermes智能体,到目前为止,很难说更喜欢哪一个。

Hermes完全基于Python的事实让我有偏见,因为我可以阅读所有代码,这使我对它的信任超过OpenClaw。我也喜欢所有密钥都保存在.env文件中,我不需要每次都导出它们,或者让它们暴露在JSON和.txt文件中。

Hermes的另一个很酷的功能是,每次它设置某些东西时,你都可以看到它正在做的所有更改,就像这里:

💻 terminal: "mkdir -p ~/.hermes && touch ~/.hermes..."
✍️ write_file: "/home/ubuntu/hermes-agent/expense_tra..."
💻 terminal: "cd /home/ubuntu/hermes-agent && pytho..."
📝 skill_manage: "expense-tracker"

这对于跟踪智能体在做什么非常好,你总可以检查修改的文件以确认没有出错。

然而,OpenClaw在许多情况下似乎更快。这可能是由于Hermes的学习系统,它在你与智能体聊天时记笔记和更新技能。但这不是更快的模型或一些配置调整无法解决的问题。

Hermes的另一个缺点是缺少审核命令和仪表板,就像OpenClaw提供的那样。

但是,嘿,Hermes才存在几天,而OpenClaw已经存在三个月了。我认为团队添加这些功能并使智能体更流畅只是几天或几周的事情。

目前,我将继续使用两者并分享我的见解。


原文链接: Hermes: The Only AI Agent That Truly Competes With OpenClaw

汇智网翻译整理,转载请标明出处