H繁中版
<!-- Source: https://hermesbible.com/docs/user-guide/messaging/simplex -->

Section: 訊息平台 · URL: https://hermesbible.com/docs/user-guide/messaging/simplex

SimpleX Chat

SimpleX Chat 是一個去中心化的私密訊息平台,使用者擁有自己的聯絡人與群組。與其他平台不同,SimpleX 不會指派持久性的使用者 ID — 每個聯絡人都以連線時產生的不透明內部 ID 標識,使其成為目前最私密的通訊軟體之一。

執行 hermes gateway setup 並選擇 SimpleX 以獲得引導式設定流程。

前置需求

  • simplex-chat CLI 已安裝並以 daemon 模式運作
  • Python 套件 websocketspip install websockets

安裝 simplex-chat

simplex-chat GitHub releases 頁面下載最新版本:

# Linux / macOS binary
curl -L https://github.com/simplex-chat/simplex-chat/releases/latest/download/simplex-chat-ubuntu-22_04-x86_64 -o simplex-chat
chmod +x simplex-chat

SimpleX Chat 專案並未提供聊天用戶端的預建 Docker 映像;若要在 Docker 下運作,請從 simplex-chat repository 自行從原始碼建構。

啟動 daemon

simplex-chat -p 5225

daemon 預設透過 WebSocket 監聽於 ws://127.0.0.1:5225

設定 Hermes

透過設定精靈

hermes gateway setup

選擇 SimpleX Chat 並按照提示操作。

透過環境變數

~/.hermes/.env 中加入以下設定:

SIMPLEX_WS_URL=ws://127.0.0.1:5225
SIMPLEX_ALLOWED_USERS=<contact-id-1>,<contact-id-2>
SIMPLEX_HOME_CHANNEL=<contact-id>
變數必要說明
SIMPLEX_WS_URLsimplex-chat daemon 的 WebSocket URL
SIMPLEX_ALLOWED_USERS建議以逗號分隔的允許清單。每個項目可以是數字 contactId 顯示名稱 — 兩種格式皆可。
SIMPLEX_ALLOW_ALL_USERS選用設為 true 以允許所有聯絡人(請謹慎使用)
SIMPLEX_AUTO_ACCEPT選用自動接受傳入的聯絡人請求(預設:true
SIMPLEX_GROUP_ALLOWED選用以逗號分隔的群組 ID 清單,或設為 * 允許所有群組。省略此欄位將忽略所有群組訊息
SIMPLEX_HOME_CHANNEL選用排程任務(cron job)的預設聯絡人/群組 ID
SIMPLEX_HOME_CHANNEL_NAME選用頻道的人類可讀標籤
HERMES_SIMPLEX_TEXT_BATCH_DELAY選用靜默期秒數(預設:0.8),用於將快速連續傳入的文字訊息合併為單一事件

查找你的聯絡人 ID 或顯示名稱

啟動 daemon 後,與你的 agent 聯絡人開啟對話。數字 contactId 會出現在工作階段日誌中,或透過 hermes send_message action=list 查詢。如果你偏好使用 SimpleX 介面中顯示的名稱,同樣可以運作 — SIMPLEX_ALLOWED_USERS 接受任一格式。

授權機制

預設情況下所有聯絡人都會被拒絕。你必須:

  1. SIMPLEX_ALLOWED_USERS 設為以逗號分隔的 contactId 和/或顯示名稱清單(例如 SIMPLEX_ALLOWED_USERS=4,alice 會匹配 contactId 4 或顯示名稱為 "alice" 的聯絡人),或
  2. 使用 DM 配對 — 任意向 bot 發送訊息,它會回覆一組配對代碼。透過 hermes pairing approve simplex <CODE> 輸入該代碼即可完成授權。

群組聊天

適配器預設會忽略群組訊息 — 否則群組中的 bot 會處理所有成員的訊息流量。需要明確啟用:

SIMPLEX_GROUP_ALLOWED=12,34          # 特定群組 ID
# 或
SIMPLEX_GROUP_ALLOWED=*              # bot 所在的任何群組

send_message 或排程任務的 deliver= 目標中,以 group: 前綴加上 chat ID 來指定群組,例如 simplex:group:12

附件

適配器支援雙向的 SimpleX 原生附件:

  • 接收 — 透過 daemon 的 XFTP 流程接受傳入的圖片、語音訊息和檔案(rcvFileDescrReady/freceive → 等待 rcvFileComplete),並以 MessageEvent.media_urls 呈現,搭配對應的 MessageTypePHOTOVOICETEXT + 文件)。
  • 傳送send_image_filesend_voicesend_documentsend_video 皆使用帶有 filePath 的結構化 /_send 格式,使接收端的 SimpleX 用戶端能以內嵌方式顯示圖片和播放語音訊息,而非將其作為下載檔案。

Agent 回覆也可以在純文字中嵌入 MEDIA:/path/to/file 標籤 — 適配器會從訊息中移除該標籤,並將檔案以語音訊息(音訊副檔名)或文件形式傳送。

在排程任務中使用 SimpleX

cronjob(
    action="create",
    schedule="every 1h",
    deliver="simplex",          # uses SIMPLEX_HOME_CHANNEL
    prompt="Check for alerts and summarise."
)

或指定特定聯絡人:

send_message(target="simplex:<contact-id>", message="Done!")

隱私說明

  • SimpleX 永遠不會揭露電話號碼或電子郵件地址 — 聯絡人使用不透明 ID
  • 與 daemon 的連線為本地 WebSocket(ws://127.0.0.1:5225)— 資料不會離開你的裝置
  • 訊息在到達 daemon 之前已透過 SimpleX 協議進行端對端加密

疑難排解

「無法連線至 daemon」 — 確認 simplex-chat -p 5225 正在運作,且連接埠與 SIMPLEX_WS_URL 一致。

「websockets not installed」 — 執行 pip install websockets

訊息未被接收 — 檢查聯絡人的 ID 是否在 SIMPLEX_ALLOWED_USERS 中,或透過 DM 配對進行授權。



Teams Meetings