Signal 设置
Hermes 通过以 HTTP 模式运行的 signal-cli 守护进程连接到 Signal。适配器通过 SSE(Server-Sent Events)实时流式传输消息,并通过 JSON-RPC 发送响应。
Signal 是最注重隐私的主流消息应用——默认端到端加密、开源协议、最少元数据收集。这使其成为安全敏感代理工作流的理想选择。
前置要求
- signal-cli — 基于 Java 的 Signal 客户端
- Java 17+ 运行时
- 安装了 Signal 的电话号码
安装 signal-cli
# macOS
brew install signal-cli
# Linux
VERSION=$(curl -Ls -o /dev/null -w %{url_effective} \
https://github.com/AsamK/signal-cli/releases/latest | sed 's/^.*\/v//')
curl -L -O "https://github.com/AsamK/signal-cli/releases/download/v${VERSION}/signal-cli-${VERSION}.tar.gz"
sudo tar xf "signal-cli-${VERSION}.tar.gz" -C /opt
sudo ln -sf "/opt/signal-cli-${VERSION}/bin/signal-cli" /usr/local/bin/
步骤 1:链接你的 Signal 账户
signal-cli link -n "HermesAgent"
- 在手机上打开 Signal
- 进入 Settings → Linked Devices
- 点击 Link New Device
- 扫描 QR 码或输入 URI
步骤 2:启动 signal-cli 守护进程
signal-cli --account +1234567890 daemon --http 127.0.0.1:8080
验证运行:
curl http://127.0.0.1:8080/api/v1/check
步骤 3:配置 Hermes
hermes gateway setup # 选择 Signal
或手动配置:
SIGNAL_HTTP_URL=http://127.0.0.1:8080
SIGNAL_ACCOUNT=+1234567890
SIGNAL_ALLOWED_USERS=+1234567890,+0987654321
访问控制
- DM:遵循与其他 Hermes 平台相同的模式
- 群组:
SIGNAL_GROUP_ALLOWED_USERS控制
功能
- 附件:支持图像、音频、文档
- 语音消息:转录(如果配置了 Whisper)
- 打字指示器:处理时显示
- 电话号码编辑:日志中自动编辑
故障排除
| 问题 | 解决方案 |
|---|---|
| "Cannot reach signal-cli" | 确保守护进程正在运行 |
| 消息未接收 | 检查 SIGNAL_ALLOWED_USERS 包含发送者号码 |
| 群组消息被忽略 | 配置 SIGNAL_GROUP_ALLOWED_USERS |
安全
注意
始终配置访问控制。机器人默认具有终端访问权限。