HermesClaw
让同一微信 iLink 账号在 Hermes、OpenClaw 与 OpenCode 间切换。
- Star 数
- ★ 758
- 最近更新
- 17 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 53/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 已经配置 Hermes Agent 微信 Gateway 的个人,希望在不更换微信账号的前提下再加入 OpenClaw。
- 不适合
- 没有 Hermes 或 OpenClaw 微信网关、只想开箱即用的用户
- 不愿改动现有网关配置或无法接受卸载需还原备份的团队
- 源码审查
- 53/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
HermesClaw 是一个自托管的 Python 路由代理,用于让 Hermes Agent、OpenClaw 和可选的 OpenCode 共用一个微信 iLink 账号。它作为唯一的 iLink 轮询者和令牌持有者,避免多个原生 Gateway 同时连接同一账号时出现令牌冲突或 403。服务在本机提供两个代理端点,分别供 OpenClaw 和 Hermes Gateway 使用,并通过 ACP 子进程桥接 OpenCode。用户通过微信消息中的 /hermes、/openclaw、/opencode、/both 和 /three 切换投递目标;多代理模式会给回复加上来源标签。它不解密媒体、不调用各 Agent 的 API,也不管理它们的记忆,而是转发原始 iLink 协议消息,让各 Gateway 继续原生处理媒体和对话。安装脚本会配置 Linux systemd 或 macOS launchd 后台服务。
hermesclaw.py 轮询 iLink API,并按当前路由把原始 iLink 消息放入 Hermes 和 OpenClaw 所连接的本地代理队列;安装器将 openclaw-weixin 的 baseUrl 改为 http://127.0.0.1:19999,并将 Hermes 的 WEIXIN_BASE_URL 改为 http://127.0.0.1:19998。代理把 Gateway 的 sendmessage 请求转发回 iLink。对于 OpenCode,OpenCodeBridge 和 ACPSession 通过 opencode acp 子进程上的 JSON-RPC 2.0/NDJSON 建立按用户划分的会话,并将文本回复通过 send_text_ilink 发回微信。文本原样转发;语音使用 iLink 附带的转写文本;图片、视频和文件则将含 CDN URL 与 AES 密钥的原始消息交给各 Gateway 自行下载和解密。/whoami 返回当前路由和状态。
- 已经配置 Hermes Agent 微信 Gateway 的个人,希望在不更换微信账号的前提下再加入 OpenClaw。
- 已使用 OpenClaw clawbot 的用户,希望同一账号也能向 Hermes 投递消息,并通过 /both 获取两份回复。
- 在本机安装了 OpenCode CLI 的开发者,希望从微信语音或文本发起 OpenCode ACP 会话进行编码工作。
- 需要在 Hermes、OpenClaw 与 OpenCode 之间按会话切换,或用 /three 同时向三者发送同一条消息的用户。
- 处理图片、视频、文件或语音消息的微信机器人部署者,希望继续由现有 Gateway 原生下载、解密和处理媒体。
如何安装或部署这个 Agent?
前提:已安装并登录配置 Hermes Agent 的 WeChat gateway,或已安装 OpenClaw + clawbot(至少一个);还需要 Python 3、网络访问和可用的 iLink 账号配置。运行:
curl -fsSL https://raw.githubusercontent.com/AaronWong1999/hermesclaw/main/install.sh | bash自动化安装可运行:
curl -fsSL https://raw.githubusercontent.com/AaronWong1999/hermesclaw/main/install.sh | HERMESCLAW_YES=1 bash或:bash install.sh -y。安装器会检测 Gateway、从可用账户文件提取 iLink token、写入代理地址、安装 Python 依赖并设置 Linux 的 systemd 或 macOS 的 launchd 服务。若要启用 OpenCode,先运行 npm install -g opencode-ai,并在 .env 中设置 OPENCODE_CMD;README 说明默认 OPENCODE_MODEL 为 opencode/minimax-m2.5-free。安装后重启 Gateway。
如何使用这个 Agent?
在微信中先发送 /whoami 确认服务和当前路由。发送 /hermes、/openclaw 或 /opencode 选择单一目标;发送 /both 让 Hermes 与 OpenClaw 同时回复,或 /three 让三者同时回复。之后发送普通文本即可投递给当前活动目标;语音会按 iLink 提供的转写文本转发。若 OpenCode 未安装,/opencode 和 /three 会显示安装提示,而不会正常启动 OpenCode 会话。
这个 Agent 有哪些优点和局限?
- 以 HermesClaw 作为唯一 iLink 轮询者,直接解决 Hermes 与 OpenClaw 原生 Gateway 在同一账号上的连接冲突。
- 保留各 Gateway 的原生媒体处理:代理仅转发原始 iLink 消息,不自行下载 CDN 内容或执行 AES 解密。
- 支持 /both 和 /three 并行路由,并为多目标回复添加 Hermes Agent、OpenClaw 或 OpenCode 来源标签。
- OpenCode 通过原生 ACP 子进程协议接入,不需要额外的代理端口,并包含按用户会话与子进程恢复处理。
- 安装器可自动发现已配置的 Gateway,并支持 Linux 的 systemd 和 macOS 的 launchd。
- 核心能力依赖微信 iLink 生态以及已登录、已配置的 Hermes Gateway 或 OpenClaw clawbot,不能作为独立聊天 Agent 使用。
- 部署会修改 openclaw-weixin 的 baseUrl 和 Hermes 的 WEIXIN_BASE_URL;卸载或迁移时需要恢复备份配置。
- OpenCode 路由是可选项,但需要单独安装 opencode-ai、配置 OPENCODE_CMD,并依赖本地 ACP 子进程。
- 安装和后台运行依赖 shell、Python、网络、本地账户文件以及 systemd 或 launchd 等主机环境。
- README 对 iLink 账户获取和各上游 Gateway 的初始安装流程仅以前置条件说明,未提供完整的新账号配置步骤。
这个 Agent 与同类方案有什么区别?
相较于直接分别运行 Hermes 和 OpenClaw 的原生微信 Gateway,HermesClaw 集中持有 iLink 连接并通过两个本地代理分发消息,因此同一账号可使用 /both。相较于未接入时没有微信支持的 OpenCode,它通过 opencode acp 子进程桥接提供 /opencode 与 /three;它并不替代这三个上游项目本身。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| HermesClaw 当前 | 53 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 758 | 17 天前 | Python | — |
| ClawPanel | 42 · 缺口较多 | 桌面应用免费 | ★ 2.9k | 16 天前 | JavaScript | OpenAI API |
| ClawMetry | 81 · 表现良好 | 命令行工具免费版 + 付费版 | ★ 436 | 4 天前 | Python | Codex · Claude Code |
| NVIDIA NemoClaw | 65 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 23k | 今天 | TypeScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:安装脚本会提取 iLink token 并修改网关配置,但未明确说明权限最小化原则;有交互式确认提示(-y 跳过),但默认安装会询问;数据流透明性较好,README 详细描述了消息流转和代理架构;敏感数据处理方面,token 存储在 .env 中,但未说明加密或保护措施;依赖仅 requests 和 python-dotenv,但未提供版本锁定或安全审计;外部影响包括修改系统服务、配置文件,但未明确提示风险;提供了卸载脚本,但未说明回滚机制;来源归属明确,但发布者未验证。扣分原因:权限最小化未明确,敏感数据保护不足,依赖安全未审计,外部影响未充分警示。
证据显示:代码和测试一致,测试覆盖了核心路由逻辑;依赖简单,但未提供版本锁定,可能影响可复现性;错误处理有改进,如 BrokenPipeError 捕获,但未提供全面的失败消息。扣分原因:依赖版本未固定,失败消息覆盖不全。
证据显示:目标用户明确(需要同时运行多个微信 Agent 的用户),场景清晰;能力边界在 README 中说明(不处理媒体、不调 API);触发命令精确(/hermes 等);环境适配良好,支持 Linux 和 macOS,但未提及 Windows。扣分原因:未提及 Windows 支持,能力边界描述可更详细。
证据显示:README 结构清晰,包含架构、安装、命令、布局等;安装说明详细,支持交互和非交互;命名稳定,命令和文件命名一致;示例和 FAQ 较少;已知限制未明确列出;MIT 许可证明确;有 changelog 和版本号;维护责任由作者承担,但未明确说明。扣分原因:示例和 FAQ 不足,已知限制未列出,维护责任未明确。
证据显示:输出可用性高,支持多种消息类型和路由;边际价值明显,解决了多 Agent 共存问题;成本效益合理,免费开源,依赖少。扣分原因:无显著扣分,但未提供性能或资源占用数据。
证据显示:README 中的声明部分有测试支持,但未提供外部验证;跨来源佐证有限,仅提及 Hermes Agent 社区推荐;事实与推断区分不明确。扣分原因:缺乏外部验证,事实与推断未明确区分。
- 安装脚本会提取 iLink token 并修改网关配置,请确保在可信环境中运行,并注意 token 的存储安全。
- 依赖未固定版本,建议在生产环境中锁定版本以确保可复现性。
- 发布者身份未验证,请谨慎评估信任风险。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.4.0 v0.4.0: macOS Support
-
v0.3.6 HermesClaw v0.3.6 — macOS bash 3 compat + curl|bash stdin fix
发布说明摘录
修复 🐛 macOS 安装失败 — mapfile: command not found macOS 自带 bash 3.2(GPL 授权限制),不支持 bash 4+ 内置的 mapfile。安装脚本里所有 3 处 mapfile 调用均已替换为 while IFS= read -r 循环,macOS 开箱可用。 🐛 curl | bash 安装静默中止 set -euo pipefail 下,裸 read 在 stdin 为管道(curl 输出)时返回非零,触发 set -e 立即退出,导致Aborted.出现在用户还没来得及输入任何内容之前。 修复:检测到非 tty stdin 时,把所有交互提示重定向到 /dev/tty,用户仍可正常回答;若 /dev/tty 也不可用(CI / Docker 无终端),则 fallback 到 auto-yes。全部 3 处 read 同时加了 || VAR="" 兜底。 🧪 5 个回归测试 新增 tests/test_install_sh.py,覆盖 mapfile 缺失、bash 语法、read 保底、tty 检测及非交互式 stdin 场景。 --- …在 GitHub 查看 ↗ -
v0.3.5 HermesClaw v0.3.5 — 遗留服务冲突自动检测
发布说明摘录
修复 🐛 install.sh:自动检测并禁用旧版 hermes-weixin-bridge 服务 根因:hermes-weixin-bridge.service(旧版 bridge.py)带有 WantedBy=multi-user.target,每次服务器启动都会自动拉起。安装 HermesClaw v3 后如果旧服务仍处于 enabled 状态,会导致新旧两个桥同时运行,出现微信消息重复处理、iLink token 冲突等问题。 修复内容(install.sh):新增 detect_and_disable_legacy_services() 函数,在安装流程的摘要之后、安装依赖之前执行: - 检测 hermes-weixin-bridge.service 是否处于 enabled / enabled-runtime / active 状态 - -y / HERMESCLAW_YES=1(自动模式):自动执行 systemctl disable --now - 交互模式:询问用户确认,默认 Y - disable 后二次验证是否真的生效,失败则打印 warning 并给出手动命令 …在 GitHub 查看 ↗