Signal 集成

通过 Signal 安全地与 ClawdBot 对话

概述

Signal 是最安全的即时通讯应用之一,使用端到端加密保护所有通信。 通过 Signal 集成,你可以在完全加密的环境中与 ClawdBot 交流, 非常适合需要高隐私保护的场景。

端到端加密

所有消息都经过加密,只有你能看到

隐私优先

Signal 不收集元数据,保护你的隐私

完整功能

支持文本、图片、文件等多种消息类型

注意事项

Signal 集成需要一个独立的手机号来注册 ClawdBot 账号。 建议使用专门的 SIM 卡或虚拟号码。

前提条件

  • 独立手机号 - 用于注册 Signal 账号(不能是你日常使用的号码)
  • signal-cli - Signal 的命令行客户端
  • Java 17+ - signal-cli 运行环境
  • Linux/macOS - 推荐的运行环境

安装 signal-cli

macOS (Homebrew)

brew install signal-cli

Linux

# 下载最新版本
VERSION="0.13.2"
wget https://github.com/AsamK/signal-cli/releases/download/v${VERSION}/signal-cli-${VERSION}.tar.gz

# 解压
tar xf signal-cli-${VERSION}.tar.gz -C /opt

# 创建软链接
sudo ln -sf /opt/signal-cli-${VERSION}/bin/signal-cli /usr/local/bin/

验证安装

signal-cli --version

注册 Signal 账号

步骤 1: 注册手机号

# 替换为你的手机号(国际格式)
signal-cli -u +8613800138000 register

你会收到一条短信验证码。

步骤 2: 验证

# 输入收到的验证码
signal-cli -u +8613800138000 verify 123456

步骤 3: 设置个人资料(可选)

# 设置名称
signal-cli -u +8613800138000 updateProfile --given-name "ClawdBot" --family-name "AI"

# 设置头像
signal-cli -u +8613800138000 updateProfile --avatar /path/to/avatar.jpg

步骤 4: 测试发送消息

# 发送测试消息到你自己的 Signal
signal-cli -u +8613800138000 send -m "Hello from ClawdBot!" +86YOUR_PERSONAL_NUMBER

配置 ClawdBot

方法 1: 配置向导

clawdbot signal setup

方法 2: 配置文件

# ~/.clawdbot/config.yaml

channels:
  signal:
    enabled: true
    phone_number: "+8613800138000"

    # 可选:只允许特定联系人
    allowed_contacts:
      - "+86139xxxxxxxx"
      - "+86138xxxxxxxx"

    # 可选:signal-cli 配置目录
    config_path: "~/.local/share/signal-cli"

方法 3: 环境变量

export CLAWDBOT_SIGNAL_PHONE="+8613800138000"
clawdbot gateway

启动并验证

# 启动 Gateway(daemon 模式接收消息)
clawdbot gateway

# 检查连接状态
clawdbot channels list

功能特性

消息类型

  • 文本消息 - 普通对话
  • 图片 - 发送和接收图片,支持 AI 分析
  • 文件 - 处理文档和附件
  • 语音消息 - 语音转文字处理
  • 表情回应 - 支持 emoji 反应

群组支持

  • 支持 Signal 群组
  • 需要被 @mention 才会响应(可配置)
  • 独立的群组上下文

消息功能

  • 阅后即焚 - 支持 Signal 的消失消息功能
  • 回复引用 - 可以回复特定消息
  • 已读回执 - 发送已读确认(可配置)

安全说明

数据安全

Signal 集成的安全特性:

  • 所有通信使用 Signal Protocol 端到端加密
  • 消息在传输过程中无法被第三方读取
  • Signal 服务器只能看到加密后的数据

本地安全

  • signal-cli 的密钥存储在本地
  • 建议保护好 ~/.local/share/signal-cli 目录
  • 考虑使用加密文件系统

访问控制

# 限制只有特定联系人可以使用
channels:
  signal:
    allowed_contacts:
      - "+86139xxxxxxxx"  # 只有这些号码可以与 Bot 对话

💡 安全建议

虽然 Signal 通信是加密的,但 ClawdBot 处理消息时会发送到 AI 模型。 如果需要完全的本地处理,请考虑使用本地模型。

故障排查

注册失败

  • 确保手机号格式正确(国际格式,如 +8613800138000)
  • 某些虚拟号码可能被 Signal 拒绝
  • 等待几分钟后重试

收不到消息

  • 确保 Gateway 正在运行
  • 检查 signal-cli 是否正常:signal-cli -u +86xxx receive
  • 确认发送方号码在 allowed_contacts 列表中

发送消息失败

  • 确保目标号码已注册 Signal
  • 检查网络连接
  • 查看日志获取详细错误

密钥问题

# 如果遇到密钥相关错误,可以尝试
signal-cli -u +86xxx receive  # 同步密钥

# 或重新链接
signal-cli -u +86xxx updateAccount

获取更多帮助

# 运行诊断
clawdbot doctor --verbose

# 查看详细日志
clawdbot logs --level debug

# 直接测试 signal-cli
signal-cli -u +86xxx receive --timeout 5