什么是 Hermes Agent ?

Hermes Agent 是在今年 2 月份发布的,现在 GitHub 上已经有 11W 人收藏了。
跟小龙虾 OpenClaw 类似,Hermes Agent 也是一个开源的通用的 AI 智能体,可以长期在自己的电脑上运行,可以访问自己电脑里的文件,也可以操控本地的浏览器做一些像是表单填写的事情,可以学习技能,而且可以设定定时任务,而不是像豆包那样只能从网上收集信息。
Hermes Agent 和 OpenClaw 相比,最大的两个优势是有自我进化的能力,并且安全性更高,进化主要体现在记忆和 Skill 的沉淀上,安全性主要体现在危险命令的审批机制,比如说对于移除所有文件的 rm -rf 的危险命令需要人类审批才能执行,而且支持容器执行。
而 OpenClaw 相对于 Hermes Agent 来说,最大的两个优势是可以通过网页来调整配置,而且还有移动端的节点,在 iOS 或者安卓手机上使用的时候,可以调用手机上的一些功能,比如手机截屏或者是拍照。
怎么安装 Hermes Agent
首先在终端输入这个命令:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash这个 curl 命令是用来下载Hermes Agent的安装脚本的, -fsSL 的意思是静默下载不显示进度,出错的话显示报错信息。| 是管道,用于把上一个命令的输出给到下一个命令,下一个命令是 bash 命令,也就是整个命令的意思是下载脚本并交给 bash 执行,bash 是 Shell 解释器。install.sh 表明这是一个 Shell 脚本文件。
install.sh 脚本里会安装 uv 、Python ,检查 Git ,安装 Node.js ,克隆 Hermes Agent 的 Git 仓库,安装 Python 依赖,安装浏览器,配置 hermes 命令,运行配置向导。
Python 是一门编程语言,Hermes Agent 就是用 Python 开发的,uv 是 Python 的包管理器,可以用来安装 Hermes Agent 需要的依赖,Git 是一个代码管理工具,可以用来把 Hermes Agent 在云端的代码克隆到本地,Node.js 是用来运行 JavaScript 程序的环境,Hermes Agent 有一部分代码就是用 JavaScript 写的,JavaScript 简称 JS ,比如 Hermes Agent 的浏览器工具就涉及 JS 代码。
输入这个命令后就会开始检查系统环境,并安装依赖的一些软件。

安装完 Chromium 或者是安装失败跳过了浏览器安装的部分后,如果你是重装 Hermes 的话,会先让你选择怎么处理之前的配置。
Quick Setup:只处理缺失的配置
Full Setup :完全重新配置
Model & Provider :只配置模型和模型提供商
Terminal Backend :配置 agent 运行终端命令时的后端,比如本地运行,Docker 运行还是 SSH 运行
Messaging Platforms(Gateway):配置消息平台,比如飞书或者微信
Tools :配置工具,比如语音转文本、网页搜索、图片生成等工具
Agent Settings :配置 Agent 的行为参数,包括最大迭代次数,上下文压缩,会话重置等参数
Exit :退出向导

为了完整演示,我这里选择的是 Full Setup ,选择 Full Setup 后下一步要选择模型提供商。
Nous Portal :订阅了 Nous Research 的服务才能使用,Nous Research 就是 Hermes Agent 的开发团队
OpenRouter :大模型聚合平台,在上面只需要创建 1 个 apikey 就可以使用不同大模型厂商的模型,但是充值的时候有额外的服务费
Vercel AI Gateway :和 OpenRouter 一样是大模型聚合平台,但是支持兜底备选 fallback 机制,也就是一个模型失败的时候可以帮你切换到另一个模型,这样你就不用额外编写代码

我现在购买的是智谱的 Coding plan,所以我这里选择的是 Z.AI ,具体的选择根据你购买哪个厂商的服务来决定。需要注意的是如果你是使用这类通用 Agent 的新手的话,不要通过按量购买 Token 的方式来使用,否则的话你就看到 Token 支出像流水一样哗啦啦地消耗,最好是买一个 Coding Plan,国内很多厂商都有提供 Coding Plan,比如 MiniMax 和 Kimi 都有这样的话成本是在可控范围内的。
选择模型提供商后,输入 API Key ,BaseUrl 可以不修改,模型我选择的是 glm-5v-turbo,是智谱最新的支持图片识别的模型。

处理完提供商的配置后,下一步还会提示你要不要添加一个兜底备用(fallback)用的凭证(apikey),这里我选择跳过,如果你有的话也可以填进去,比如你有两个账号都有 Coding Plan,第一个账号的订阅快过期了,就可以把第二个账号的 ApiKey 填进去。又或者是为了避免一个账号的并发太少了,也可以填写一个兜底备用的 apikey。

下一步就是选择 TTS(文字转语音)的提供商,默认是 Edge TTS 。
Edge TTS :微软提供的 TTS 服务,不用钱
ElevenLabs :要钱,英文语音的质量比较好,中文比较一般,价格是 Flash / Turbo:$0.05 / 1000 字符
OpenAI TTS :OpenAI 提供的 TTS 服务,没用过,价格是 $0.015 / 分钟
MiniMax TTS :中文支持比较好,$5/月 → 100,000 积分/月

我这里选择的是 Edge TTS ,一般我也用不到这个功能,如果你有需要的话可以用 MiniMax 。
下一步就是选择 terminal backend,terminal backend 是 Hermes 执行命令的环境。

Local :在本地运行,是这几种方式里最简单的一种。但是有一定的危险性,可以直接修改你本地的文件,但是也可能会把你本地已有的文件删掉
Docker :本地容器,需要先安装 Docker 。Docker 容器是一个带有独立文件系统和环境的容器,可以让 hermes 只修改你发送给它的文件,避免 hermes 不小心把电脑里一些你不想让它修改的文件也改了。
Modal :云端沙盒,文件不会一直保留,需要注册账号,免费用户一个月有 $30 算力
SSH :在远程服务器上运行,需要你自己购买服务器,文件会一直保留
Daytona :会持续保存数据的云端开发环境,需要注册账号,有 $200 的免费算力
如果你想用 local 这种方式,并且只想让 hermes 只访问特定目录的话,可以在系统环境变量里配置export HERMES_WRITE_SAFE_ROOT=/你的项目目录,又或者是专门在系统上创建一个给 Hermes 用的独立的用户/工作目录,这样的话就不会影响到你原有的文件。
再下一步就是选择 Messaging working directory,也就是通过消息使用时的起始目录,默认是当前目录“.”,你从飞书或者是微信上发送消息给 hermes ,让它查找电脑上的文件的时候,hermes 会首先从这个起始目录里查找。

然后是选择是否启用 sudo, sudo 的全称是 superuser do,也就是让超级用户来执行这条命令,比如安装系统级软件,启动或者停止系统服务的时候,就需要超级用户才有权限操作,启用 sudo 意味着把超级权限给到 hermes ,如果给 hermes 配置的模型比较差,遇到问题的时候不小心输出了 sudo rm -rf 重要目录,那就会造成无法挽回的损失,因此这里我选择拒绝 N 。

再下一步是选择迭代次数,所谓的迭代次数就是在一次任务里允许 Agent 调用工具,思考,继续下一步的最大轮次,默认是 90 次,迭代次数越大,模型在遇到问题的时候就会做更多的尝试,如果你只是用 Hermes 来做一些简单的问答的话,设为 8 到 15 次就行,如果是用来做一些简单的文件修改和查找的话,设为 15 到 30 次就行。如果涉及到一些小项目,可以设为 30~60 次,大型项目的话可以设定在 60~90 次,如果发现还是不够再往上加。

我这里选择的是默认的 90 ,因为我打算用它来测试一下开发复杂的项目。
然后是配置 Tool progress mode,默认是 all 。
off :只显示最终的结果,不显示任务执行过程的工具调用结果
new :切换使用不同的工具时才显示新的工具调用结果,比如说连续调用了五次读取文件的 read_file 工具,就只显示 1 次 read_file ,下次切换到 write_file 的时候才显示 write_file 工具的执行结果。如果是在飞书或者微信这些消息渠道里使用 hermes 的话,就可以设置为 new ,这样话不会满屏都是相同的工具调用记录
all :显示每一次的工具调用的预览信息
verbose :显示详细的任务执行过程,包括工具的参数,执行结果,思考过程,调试日志。如果你在修改和调试 hermes 的话,可以选择 verbose

我这里选择的是默认的 all ,可以在 CLI 里用 /verbose 切换 tool progress mode。
再下一步就是设置上下文压缩的阈值,上下文指的是传给大语言模型的数据,包括提供了哪些工具给模型调用,角色设定(SOUL.md),项目规则(AGENTS.md),记忆,技能,会话的所有消息(包括工具执行结果,Agent 的回复,用户消息)等。上下文压缩就是就所有消息进行总结,阈值越小,总结次数就越多,阈值越大,传给模型的上下文信息就越多,就越容易出现注意力稀疏的问题,也就是信息太多了,你告诉模型的其中一些规则它记不住了。
最好的情况下还是自己多开新会话,避免进行压缩,因为总结压缩后的信息不一定符合你的预期。
让不同的任务的信息在不同的会话中,避免不同任务的信息混在一起,导致 Agent 误解了最新的任务到底要做什么。
如果说你想要 hermes 修改一个复杂项目的话,可以把压缩的阈值改大一些,因为修改问题的过程可能要很久而且涉及很多个文件。

我这里选择的是默认的 0.5 。
然后是设置会话的重置模式,默认是 Intactiveity + daily reset。

Intactiveity + daily reset:如果过了一段时间没人发消息的话会重置会话,或者是到了每天固定的时间重置会话,避免昨天的会话和今天会话的上下文混在一起
Inactiveity + only :如果过了 N 分钟后都没有消息的话就重置
Daily only :每天固定的时间重置
Never auto-reset:不主动重置,如果你不关心不同任务的上下文混在一起,而且有自己开启新会话的习惯的话,就选这个,我选的就是这个
下一步是选择消息平台,我这里选择的是飞书,你也可以选择微信或者 QQ 。

接着选择自己输入 AppID 和 AppSecret 或者是扫码自动创建,我这里选的是扫码。

扫码或者打开链接后可以看到创建飞书应用的页面。


创建成功后打开应用。

打开后就能在飞书的消息列表里看到新建的 Hermes Agent。

然后是设定私信授权方式,第一种是私聊飞书机器人的时候系统会提供配对码,本地配对后才能使用这个机器人,避免其他人给这个机器人发消息。
第二种是允许所有私聊消息,如果只是用来提供一些公开信息的话可以选择这种。
第三种是允许特定的用户 id ,比如你只把这个机器人给你和你的几个朋友使用,每次增加用户的时候都要添加一次用户 id。

我这里选择的是通过配对码配对。
然后是群聊回复机制,第一种是艾特的时候才会回复,第二种是禁止群聊,这个选项我选的是禁止群聊。

下一步是设置 Home chat ID ,用于配置定时任务和通知发送给哪个飞书会话,可以不填写,我这里写的是刚才创建的机器人的聊天的会话 ID 。

点击飞书右上角的设置按钮后右侧面板的下方就可以看到会话 ID 。

再下一步就是确认是否重启网关 gateway,这里输入 Y 就行。

接着会提示的是要不要调整 CLI 的配置,选择后会进入工具选择 ,不配置的话就选择 Done 完成。CLI 的全称是 Command Line Interface ,也就是命令行界面,在终端里输入命令来操作程序,比如执行 hermes 命令,git 命令。此外 Hermes 还用到了 TUI ,TUI 就是 Terminal User Interface ,终端用户界面,有面板,列表,光标,状态栏,输入框,相比 CLI 有着更丰富的信息和交互方式,启动的命令是 hermes --tui 。

选择配置 CLI 后可以调整工具工具,有下面这些选项,按下空格表示选中。

网页搜索与网页数据提取
浏览器自动化,比如导航,点击,输入和滚动等操作
终端命令执行与进程管理
文件操作,文件读写和搜索等
代码执行
图片识别与分析
图片生成
多代理推理(Mixture of Agents),默认是关闭的。开启后可以让多个 Agent 并行各自生成问题的答案,输出一个最终的答案,Agent 不会执行命令和修改文件等工具,如果你想要具备 Hermes 多个视角思考问题的能力,就可以加上这个工具
文本转语音
技能管理
任务规划
记忆
会话搜索
问题澄清,就是让 Hermes 在有疑惑的时候向你提问
任务委派,把任务分给子代理执行,子代理可以各自使用工具
定时任务管理,包括查看,创建,更新,暂停和运行定时任务等操作
跨平台发消息,比如发给飞书
强化学习训练相关的工具,默认关闭
智能家电控制,默认关闭
选择好工具,再选择 Done 完成后,就会看到安装完成 Setup Complete ,这时就可以看到一些提示,比如所有文件都在系统根目录的 ~/.hermes/ 目录下,配置在 config.yaml ,apikey 在 .env 文件,定时任务在 cron ,会话在 sessions 目录。
而且还可以看到调整配置的命令,比如 hermes setup 就是重新执行安装向导,hermes config 可以查看当前配置。

接下来就可以执行 hermes 命令开始和 hermes 对话,如果要通过飞书或者其他渠道和 hermes 对话的话,要输入 hermes gateway 启动网关,这里输入 Y 就行。

输入 Y 后可以在终端看到 Hermes Agent 的标识,如果遇到问题的话,可以用 Claude Code 来解决,安装 Claude Code 的方式在购买 Coding Plan 的地方会有指示,这是 CLI 看到的界面,底部有运行状态,模型,上下文窗口大小,以及运行时间等信息。

执行了什么工具会以文本的形式呈现。

这是 TUI 看到的界面,底部有运行状态,模型,上下文窗口大小,以及运行时间等信息。

思考过程和工具调用默认是收起的,点击 Thining 和 Tool calls 左侧的箭头可以展开查看具体的内容。

启动 hermes 后,发送第一条消息后,就可以看到配对码和配对命令。

配对后就可以正常聊天了。

下面是配对后的回复。

夜雨聆风