Hermes Agent 是由 Nous Research 开发的自改进 AI Agent。它具有以下特点:
- 内置学习循环 — 从经验中创建技能,使用过程中不断改进
- 跨会话记忆 — 搜索历史对话,建立用户模型
- 多平台支持 — Telegram、Discord、Slack、WhatsApp、Signal 和 CLI
- 多模型支持 — 支持 Nous Portal、OpenRouter(200+ 模型)、OpenAI、Anthropic 等多种模型
- 灵活部署 — 可在 $5 VPS、GPU 集群或无服务器基础设施上运行
- macOS 10.15 (Catalina) 或更高版本|WSL
- Python 3.11+
- 网络连接
打开终端,执行以下命令:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
安装完成后,重新加载 Shell 配置:
source ~/.zshrc # 如果使用 zsh(macOS 默认)
或
source ~/.bashrc # 如果使用 bash
1. 安装依赖
确保已安装 Python 3.11+,可以使用 Homebrew 安装:
# 安装 Homebrew(如果未安装) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装 Python
brew install python@3.11
2. 安装 uv(Python 包管理器)
curl -LsSf https://astral.sh/uv/install.sh | sh
3. 克隆仓库并安装
git clone https://github.com/NousResearch/hermes-agent.git cd hermes-agent
创建虚拟环境
uv venv venv –python 3.11 source venv/bin/activate
安装 Hermes Agent
uv pip install -e ".[all]"
hermes
运行设置向导,配置所有选项:
hermes setup
或使用单独的命令进行配置:
hermes model 选择 LLM 提供商和模型
hermes tools 配置启用的工具
hermes config set 设置单个配置值
hermes gateway 启动消息网关(Telegram、Discord 等)
- Nous Portal
- OpenRouter(200+ 模型)
- z.ai/GLM
- Kimi/Moonshot
- MiniMax
- OpenAI
- Anthropic
- 自定义端点
hermes model
或在对话中使用:
/model openrouter:anthropic/claude-3.5-sonnet
/new 或
/reset 开始新对话
/model [provider:model] 更换模型
/personality [name] 设置个性
/retry 重试上一轮
/undo 撤销上一轮
/compress 压缩上下文
/usage 查看使用情况
/skills 浏览技能
hermes update 更新到最新版本
hermes doctor 诊断问题
Hermes Gateway 是一个后台进程,连接所有配置的消息平台,处理会话、运行定时任务并传递语音消息。
hermes gateway # 前台运行(显示实时日志) hermes gateway setup # 交互式配置所有消息平台 hermes gateway install # 安装为系统服务(macOS: launchd) hermes gateway start # 启动服务 hermes gateway stop # 停止服务 hermes gateway status # 查看服务状态
查看日志
tail -f ~/.hermes/logs/gateway.log # 实时查看网关日志 cat ~/.hermes/logs/gateway.log # 查看完整日志
调试模式(显示详细日志)
hermes chat –verbose
hermes gateway install # 安装为 launchd 服务 hermes gateway start # 启动服务 hermes gateway stop # 停止服务 hermes gateway status # 查看状态 tail -f /.hermes/logs/gateway.log # 查看日志
服务文件位于 /Library/LaunchAgents/ai.hermes.gateway.plist。
/new 或
/reset 开始新对话
/model [provider:model] 更换模型
/personality [name] 设置个性
/retry 重试上一条消息
/undo 撤销上一轮对话
/status 显示会话信息
/stop 停止运行中的 agent
/approve 批准待处理的危险命令
/deny 拒绝待处理的危险命令
/sethome 将此聊天设为主页频道
/compress 手动压缩对话上下文
/title [name] 设置或显示会话标题
/resume [name] 恢复之前命名的会话
/usage 查看此会话的 token 使用量
/insights [days] 显示使用分析和洞察
/voice [on off tts] 控制语音回复
/background
在后台会话中运行任务
/reload-mcp 重新加载 MCP 服务器
/update 更新 Hermes Agent
/help 显示可用命令
/
调用任何已安装的技能
会话持续性
会话在重置前会持续保留,agent 会记住对话上下文。
重置策略
可以在 ~/.hermes/gateway.json 中为每个平台配置覆盖:
,
"discord": {"mode": "idle", "idle_minutes": 60}
} }
在独立的背景会话中运行任务,让 agent 独立工作而主聊天保持响应:
/background 检查集群中的所有服务器,报告任何宕机的服务器
Hermes 会立即确认:
🔄 Background task started: "检查集群中的所有服务器…" Task ID: bg__a1b2c3
后台任务完成时,结果会发送回同一聊天,前缀为 “✅ Background task complete”。
默认情况下,网关拒绝所有不在白名单中或未通过 DM 配对的用户。 这是具有终端访问权限的机器人的安全默认设置。
用户白名单
# 限制特定用户(推荐): TELEGRAM_ALLOWED_USERS=, DISCORD_ALLOWED_USERS= SIGNAL_ALLOWED_USERS=+155*4567,+155*6543 FEISHU_ALLOWED_USERS=ou_xxxxxxxx,ou_yyyyyyyy
或允许所有用户(不推荐):
GATEWAY_ALLOW_ALL_USERS=true
DM 配对(白名单的替代方案)
不需要手动配置用户 ID,未知用户在 DM 机器人时会收到一次性的配对码:
# 用户看到:"配对码: XKGH5N7P"
您批准他��:
hermes pairing approve telegram XKGH5N7P
其他配对命令:
hermes pairing list # 查看待批准 + 已批准用户 hermes pairing revoke telegram # 移除访问权限
配对码 1 小时后过期,有速率限制,使用加密随机数。
Hermes Agent 支持通过 Open WebUI 或 API Server 提供 Web 界面。
Open WebUI 是一个开源的 Web UI,可以连接到 Hermes 作为后端。
配置步骤:
- 首先在 Hermes 中配置 API 服务器
- 然后将 Open WebUI 连接到 Hermes
具体配置请参考官方文档:Open WebUI + API Server
Hermes 也提供 API 服务器模式,可以通过 HTTP API 访问。
Hermes 支持 Webhooks,可以接收外部 HTTP 请求触发。
具体配置请参考官方文档:Webhooks
Hermes Agent 可以作为飞书或 Lark 机器人进行集成,支持私聊和群聊、定时任务通知、文本/图片/音频/文件附件等。
支持两种连接模式:
websocket(推荐) Hermes 主动建立出站连接,无需公网地址 笔记本、工作站、私有服务器
webhook 飞书推送事件到 Hermes 的 HTTP 端点 已有公网可访问的 HTTP 服务
方式一:扫码创建(推荐)
hermes gateway setup
选择 Feishu / Lark,使用飞书或 Lark 移动端应用扫描二维码。Hermes 会自动创建机器人应用并保存凭证。
方式二:手动创建
- 打开飞书开发者控制台:
- 飞书:https://open.feishu.cn/
- Lark:https://open.larksuite.com/
- 创建新应用
- 在 凭证与基础信息 中复制 App ID 和 App Secret
- 启用应用的 机器人 能力
- 运行
hermes gateway setup,选择 Feishu / Lark 并输入凭证
⚠️ 注意:请妥善保管 App Secret,拥有它的人可以冒充您的应用。
WebSocket 模式(推荐)
当 Hermes 运行在笔记本、工作站或私有服务器时使用,无需公网 URL:
FEISHU_CONNECTION_MODE=websocket
要求:需要安装 websockets Python 包。SDK 会自动处理连接生命周期、心跳和自动重连。
Webhook 模式
仅当您已有可访问的 HTTP 端点时使用:
FEISHU_CONNECTION_MODE=webhook
在 webhook 模式下,Hermes 启动 HTTP 服务器(通过 aiohttp),端点路径为 /feishu/webhook。
可自定义 webhook 服务器配置:
FEISHU_WEBHOOK_HOST=127.0.0.1 # 默认:127.0.0.1 FEISHU_WEBHOOK_PORT=8765 # 默认:8765 FEISHU_WEBHOOK_PATH=/feishu/webhook # 默认:/feishu/webhook
方式一:交互式配置
hermes gateway setup
选择 Feishu / Lark 并按提示填写。
方式二:手动配置
在 ~/.hermes/.env 中添加:
FEISHU_APP_ID=cli_xxx FEISHU_APP_SECRET=secret_xxx FEISHU_DOMAIN=feishu FEISHU_CONNECTION_MODE=websocket
可选但强烈推荐
FEISHU_ALLOWED_USERS=ou_xxx,ou_yyy FEISHU_HOME_CHANNEL=oc_xxx
FEISHU_DOMAIN 取值:
feishu- 飞书(中国)lark- Lark(国际版)
hermes gateway
然后从飞书/Lark 给机器人发送消息,确认连接正常。
共享群聊行为可通过 config.yaml 控制:
group_sessions_per_user: true
设为 false 则整个群聊共享一个对话。
用户白名单
生产环境建议设置飞书 Open ID 白名单:
FEISHU_ALLOWED_USERS=ou_xxx,ou_yyy
如果白名单为空,任何能访问机器人的用户都可以使用它。
Webhook 加密密钥
在 webhook 模式下,设置加密密钥以启用签名验证:
FEISHU_ENCRYPT_KEY=your-encrypt-key
此密钥可在飞书应用配置的 事件订阅 部分找到。
验证令牌
额外的身份验证层:
FEISHU_VERIFICATION_TOKEN=your-verification-token
FEISHU_GROUP_POLICY 环境变量控制群聊响应行为:
open 响应任何用户在任何群中的 @提及
allowlist 仅响应白名单用户的 @提及(默认)
disabled 忽略所有群消息
在飞书/Lark 聊天中使用 /set-home 将其标记为定时任务结果和跨平台通知的主页频道。
也可以预配置:
FEISHU_HOME_CHANNEL=oc_xxx
当用户点击机器人发送的交互式卡片按钮时,适配器将其路由为 /card 命令事件。
必须的飞书应用配置(交互式卡片):
交互式卡片需要在飞书开发者控制台完成 三项 配置:
- 订阅卡片操作事件:在 事件订阅 中添加
card.action.trigger - 启用交互式卡片能力:在 应用功能 > 机器人 中启用 消息卡片 开关
- 配置卡片请求 URL(仅 webhook 模式):在 应用功能 > 机器人 > 消息卡片请求 URL 设置与事件 webhook 相同的端点
⚠️ 警告:缺少任何配置都会导致点击卡片按钮时返回错误 。
接收媒体
发送媒体
send 文本或富文本消息
send_image /
send_image_file 图片气泡(可选标题)
send_document 文件附件
send_voice 音频文件附件
send_video 视频消息
当输出文本包含 markdown 格式时,适配器会自动将其作为飞书 帖子 消息发送,支持富文本渲染。
如果飞书 API 拒绝帖子内容,会自动回退为纯文本发送。
适配器收到消息后会立即添加 ✅ 表情反应,表示消息已接收并正在处理。
FEISHU_APP_ID ✅ — 飞书/Lark App ID
FEISHU_APP_SECRET ✅ — 飞书/Lark App Secret
FEISHU_DOMAIN —
feishu
feishu(中国)或
lark(国际)
FEISHU_CONNECTION_MODE —
websocket
websocket 或
webhook
FEISHU_ALLOWED_USERS — (空) 用户白名单 Open ID,逗号分隔
FEISHU_HOME_CHANNEL — — 定时任务/通知输出的聊天 ID
FEISHU_ENCRYPT_KEY — (空) Webhook 签名验证加密密钥
FEISHU_VERIFICATION_TOKEN — (空) Webhook 载荷验证令牌
FEISHU_GROUP_POLICY —
allowlist 群消息策略:
open、
allowlist、
disabled
FEISHU_BOT_OPEN_ID — (空) 机器人的 open_id(用于 @提及 检测)
FEISHU_BOT_NAME — (空) 机器人显示名称
FEISHU_WEBHOOK_HOST —
127.0.0.1 Webhook 服务器绑定地址
FEISHU_WEBHOOK_PORT —
8765 Webhook 服务器端口
FEISHU_WEBHOOK_PATH —
/feishu/webhook Webhook 端点路径
lark-oapi not installed 安装 SDK:
pip install lark-oapi
websockets not installed 安装:
pip install websockets
aiohttp not installed 安装:
pip install aiohttp 机器人不在群聊中响应 确保机器人被 @提及,检查
FEISHU_GROUP_POLICY 和白名单
Webhook rejected: invalid verification token 确保
FEISHU_VERIFICATION_TOKEN 匹配飞书应用配置
Webhook rejected: invalid signature 确保
FEISHU_ENCRYPT_KEY 匹配飞书应用配置 图片/文件未被机器人接收 为飞书应用授予
im:message 和
im:resource 权限 错误 (点击按钮) 启用交互式卡片能力并配置卡片请求 URL
如果您之前使用 OpenClaw,可以自动迁移设置:
# 交互式迁移 hermes claw migrate
预览迁移内容
hermes claw migrate –dry-run
仅迁移用户数据(不含密钥)
hermes claw migrate –preset user-data
覆盖已存在的内容
hermes claw migrate –overwrite
迁移内容包括:
- SOUL.md(个性文件)
- 记忆(MEMORY.md 和 USER.md)
- 技能
- 命令白名单
- 消息设置
- API 密钥
- TTS 资源
~/.hermes/ ├── config.yaml # 主配置文件 ├── memories/ # 持久化记忆 ├── skills/ # 用户技能 ├── sessions/ # 会话历史 └── context/ # 上下文文件
- 命令未找到
source ~/.zshrc
或重新打开终端
# 检查 Python 版本 python3 –version使用指定版本
uv venv venv –python 3.11
# 确保脚本有执行权限 chmod +x ~/.hermes/scripts/* hermes doctor
- 📚 官方文档
- 💬 Discord 社区
- 🐛 问题反馈
- 💡 讨论区
- 🔌 Skills Hub
- 📦 GitHub 仓库
MIT License — 详见 LICENSE。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/269821.html