SuperAPI AI 工具集

add-signal

通用与其它

查看项目

更新于 10-16 09:31

技能介绍

用途:为 NanoClaw 增加 Signal 消息支持,以原生适配器与 signal-cli 的 TCP 守护进程进行 JSON-RPC 通信,不使用 Chat SDK 桥接,仅依赖 Node.js 内置模块(node:net、node:child_process、node:fs)。Signal 没有机器人 API,NanoClaw 需以专用号码注册为完整 Signal 账号,或以次要设备方式关联现有号码。

前置条件:需 Java 17+(17–25 均可)。macOS 可 brew install --cask temurin@17;Debian/Ubuntu 用 sudo apt-get install -y default-jre;RHEL/Fedora 用 sudo dnf install -y java-17-openjdk。还需安装 signal-cli:macOS 用 brew install signal-cli;Linux 从 GitHub releases 下载原生二进制并建立软链接到 ~/.local/bin/signal-cli,随后用 signal-cli --version 验证。

注册:路径 A 为注册新号码(推荐),先解决 CAPTCHA(在 signalcaptchas.org 生成页取 signalcaptcha:// 之后的 token),再执行 signal-cli -a +1YOURNUMBER register --captcha "TOKEN";若无法收短信,先请求短信,等约 60 秒后再用 --voice 和同一 token 走语音验证,最后执行 signal-cli -a +1YOURNUMBER verify CODE。路径 B 为关联次要设备:signal-cli -a +1YOURNUMBER link --name "NanoClaw",然后用手机扫描输出的 tsdevice: URI。运行 signal-cli 命令前须先停止 NanoClaw,因其守护进程会独占数据目录锁。

安装:从 channels 分支取得 src/channels/signal.ts 及各测试文件,并在 src/channels/index.ts 追加 import './signal.js';,然后运行 pnpm run build 与 pnpm exec vitest run src/channels/signal-registration.test.ts 验证。在 .env 中设置 SIGNAL_ACCOUNT,可选 SIGNAL_TCP_HOST、SIGNAL_TCP_PORT、SIGNAL_CLI_PATH、SIGNAL_MANAGE_DAEMON、SIGNAL_DATA_DIR。安全提示:TCP 主机应保持 127.0.0.1,守护进程无鉴权。完成后同步 .env 到容器并重启服务。

接线:向该 Signal 号码发消息后,查询 messaging_groups 表取得 id,再通过 /init-first-agent 或 /manage-channels 接到智能体组。新 Signal 用户默认被丢弃为 not_member,需在 user_roles 与 agent_group_members 中授予权限。

能力与限制:支持 Markdown 转换、引用回复、输入指示(仅私聊)、回声抑制、Note to Self、语音附件占位(默认不转写,可用 /add-voice-transcription)。暂不支持外发文件附件、编辑/删除消息和表情回应。常见问题包括守护进程不可达、配置锁、GroupV2 群组 ID 提取、二维码约 30 秒过期等,可查日志与文中排障步骤处理。