OpenClaw Signal 頻道
透過 signal-cli 將 OpenClaw 連接到 Signal — 這是一個第三方開源命令列介面,實作了 Signal 協定。此整合提供隱私優先的 AI 訊息服務,具備完整的端對端加密。OpenClaw 透過 HTTP JSON-RPC 和 Server-Sent Events 與 signal-cli daemon 通訊,讓您的 AI 助手可以在 Signal 上收發訊息。機器人帳號需要一個專用的手機號碼。
Signal 支援功能
文字訊息
支援
媒體與檔案
支援
表情回應
支援
討論串
不支援
語音訊息
不支援
群組聊天
支援
Signal 前置條件
- Signal 機器人帳號的專用手機號碼(與您的個人號碼分開)
- 伺服器已安裝 Java 執行環境(JRE 25+)
- signal-cli 已安裝並可在 PATH 中存取
- OpenClaw Gateway 已執行並設定完成
- 一個現有的 Signal 帳號用於連結機器人(或進行新註冊)
Signal 快速設定
安裝 signal-cli
從官方 GitHub 儲存庫下載並安裝 signal-cli。需要 Java 25 或更高版本。在終端機中執行 'signal-cli --version' 以驗證安裝。
連結或註冊 Signal 帳號
執行 'signal-cli link -n "OpenClaw"' 將 signal-cli 連結到現有的 Signal 帳號,並從另一台裝置掃描 QR Code。或者,使用 'signal-cli -a +15551234567 register' 註冊新帳號。請使用專用號碼 — 使用個人帳號會導致自我訊息迴圈。
新增 Signal 頻道設定
將 Signal 頻道設定新增到 ~/.openclaw/openclaw.json。將 'account' 欄位設為機器人的 E.164 格式手機號碼,並設定 dmPolicy(pairing、allowlist 或 open)以控制誰可以向您的助手發送訊息。
啟動 Gateway 並傳送測試訊息
啟動 Gateway 程序。OpenClaw 會自動啟動 signal-cli daemon。從另一個 Signal 帳號向機器人號碼傳送訊息。如果使用預設的 pairing 策略,請透過 'openclaw pairing approve signal <code>' 核准發送者。
Signal 設定範例
{
"channels": {
"signal": {
"enabled": true,
"account": "+15551234567",
"dmPolicy": "pairing"
}
}
}Signal 深入了解
架構概述
Signal 帳號設定
{
"channels": {
"signal": {
"account": "+15551234567",
"cliPath": "/usr/local/bin/signal-cli"
}
}
}外部 Daemon 模式
{
"channels": {
"signal": {
"account": "+15551234567",
"httpUrl": "http://127.0.0.1:8080/api/v1/rpc"
}
}
}私訊策略
{
"channels": {
"signal": {
"dmPolicy": "allowlist",
"allowFrom": ["+15551234567", "uuid:a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
}
}
}群組聊天管理
{
"channels": {
"signal": {
"groupPolicy": "open",
"historyLimit": 50
}
}
}隱私與端對端加密
表情回覆
{
"channels": {
"signal": {
"reactionLevel": "minimal"
}
}
}媒體與附件
{
"channels": {
"signal": {
"mediaMaxMb": 8,
"ignoreAttachments": false
}
}
}輸入指示器與已讀回執
{
"channels": {
"signal": {
"sendReadReceipts": true
}
}
}文字分段與傳送
{
"channels": {
"signal": {
"textChunkLimit": 4000,
"chunkMode": "newline"
}
}
}Signal 設定參考
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | 啟用或停用 Signal 頻道 |
| account | string | "" | 機器人的手機號碼,E.164 格式(如 +15551234567)。必填 |
| cliPath | string | "signal-cli" | signal-cli 可執行檔的路徑 |
| httpUrl | string | "" | 外部 signal-cli daemon 的完整 URL。設定後將停用自動啟動 |
| httpHost | string | "127.0.0.1" | 自動啟動的 signal-cli daemon 綁定的主機位址 |
| httpPort | number | 8080 | 自動啟動的 signal-cli daemon 綁定的連接埠 |
| autoStart | boolean | true | 是否在 Gateway 啟動時自動產生 signal-cli daemon |
| startupTimeoutMs | number | 30000 | 等待 signal-cli daemon 可用的最長時間(毫秒)。最大值 120000 |
| dmPolicy | string | "pairing" | 控制誰可以私訊機器人。選項:pairing、allowlist、open、disabled |
| allowFrom | string[] | [] | 允許向機器人發訊息的手機號碼(E.164)或 uuid:<id> 識別碼 |
| dmHistoryLimit | number | 50 | 每個對話中作為 AI 上下文包含的最近私訊數量 |
| groupPolicy | string | "disabled" | 群組聊天策略。選項:disabled、allowlist、open |
| groupAllowFrom | string[] | [] | 允許在群組中觸發機器人的手機號碼或 UUID(groupPolicy 為 allowlist 時生效) |
| historyLimit | number | 50 | 作為 AI 上下文包含的最大群組訊息數。設為 0 可停用 |
| sendReadReceipts | boolean | false | 是否為已核准的私訊聯絡人轉發已讀回執信號 |
| textChunkLimit | number | 4000 | 分段前每則外送訊息的最大字元數 |
| chunkMode | string | "length" | 文字分段模式。選項:length(硬性分割)、newline(段落感知) |
| mediaMaxMb | number | 8 | 入站/出站附件的最大媒體檔案大小(兆位元組) |
| ignoreAttachments | boolean | false | 跳過下載入站媒體附件 |
| ignoreStories | boolean | false | 完全忽略 Signal 限時動態事件 |
| receiveMode | string | "" | 訊息接收模式。選項:on-start(啟動時擷取)、manual |
| configWrites | boolean | true | 允許 /config 命令在執行時修改頻道設定 |
| reactionLevel | string | "ack" | 機器人表情回覆功能。選項:off、ack、minimal、extensive |
啟用或停用 Signal 頻道
機器人的手機號碼,E.164 格式(如 +15551234567)。必填
signal-cli 可執行檔的路徑
外部 signal-cli daemon 的完整 URL。設定後將停用自動啟動
自動啟動的 signal-cli daemon 綁定的主機位址
自動啟動的 signal-cli daemon 綁定的連接埠
是否在 Gateway 啟動時自動產生 signal-cli daemon
等待 signal-cli daemon 可用的最長時間(毫秒)。最大值 120000
控制誰可以私訊機器人。選項:pairing、allowlist、open、disabled
允許向機器人發訊息的手機號碼(E.164)或 uuid:<id> 識別碼
每個對話中作為 AI 上下文包含的最近私訊數量
群組聊天策略。選項:disabled、allowlist、open
允許在群組中觸發機器人的手機號碼或 UUID(groupPolicy 為 allowlist 時生效)
作為 AI 上下文包含的最大群組訊息數。設為 0 可停用
是否為已核准的私訊聯絡人轉發已讀回執信號
分段前每則外送訊息的最大字元數
文字分段模式。選項:length(硬性分割)、newline(段落感知)
入站/出站附件的最大媒體檔案大小(兆位元組)
跳過下載入站媒體附件
完全忽略 Signal 限時動態事件
訊息接收模式。選項:on-start(啟動時擷取)、manual
允許 /config 命令在執行時修改頻道設定
機器人表情回覆功能。選項:off、ack、minimal、extensive
Signal 常見問題
Signal 故障排除
未安裝 Java,或安裝的版本過舊。signal-cli 需要 Java 25 或更高版本。
account 欄位可能不正確、signal-cli daemon 可能未執行,或發送者尚未透過配對核准。
發送者可能不在 allowFrom 清單中(使用 allowlist 策略時),或發送者的識別碼格式不符。
groupPolicy 設為 'disabled'(預設值),或群組不在允許清單中。
signal-cli daemon 未執行、URL 不正確,或防火牆阻擋了連線。