前言¶
DeepSeek Harness 的核心設計理念是“一切皆插件”,允許開發者通過插件擴展模型的能力邊界。dsh-sms-webhook 是一個聯網工具類插件,它解決了一個常見場景:本地運行的智能體或模型無法直接訪問手機的短信數據。該插件在電腦上起一個本地 HTTP 服務,接收手機端短信轉發 App 推送的消息,將其落盤存儲,並暴露兩個工具供模型查詢。
插件簡介¶
這個插件由用戶 huaxiren6 維護,開源協議爲 MIT。它本身不包含短信轉發邏輯,而是作爲服務器端點,用於接收和存儲短信數據。通過它,DSH 環境內的模型可以獲取手機短信內容,實現驗證碼自動識別、短信歸檔或特定關鍵詞查詢等操作。
核心功能¶
插件主要提供以下能力:
- sms_recent:獲取最近收到的短信列表。支持通過 URL 參數
q進行關鍵詞過濾。 - sms_search:對已存儲的短信進行全文搜索。
- OTP 自動提取:插件會自動掃描短信內容,提取第一個 4 到 8 位的連續數字作爲
otp字段。這對於處理驗證碼場景非常實用,模型可直接調用該字段。 - 持久化存儲:數據以 JSONL(每行一個 JSON 對象)格式寫入本地文件。重啓服務後數據不丟失,但爲了防止文件過大,存儲上限爲 5000 條,達到上限後自動裁剪舊數據。
- 關鍵詞白名單:支持配置
keywords配置項。如果配置了非空列表,只有包含這些關鍵詞的短信纔會被接收和存儲。
安裝¶
安裝過程需要 DeepSeek Harness 環境已正確配置 Node.js 依賴。使用官方命令添加插件:
dsh plugin --profile web add dsh-sms-webhook
配置說明¶
插件在啓動時讀取配置文件,主要參數如下:
| 配置項 | 默認值 | 說明 |
|---|---|---|
host |
0.0.0.0 |
監聽地址。默認監聽所有網絡接口,意味着局域網內任何設備均可訪問。 |
port |
8899 |
HTTP 服務監聽端口。 |
store |
$DSH_HOME/data/dsh-sms-webhook/messages.jsonl |
短信數據落盤文件路徑。 |
keywords |
[] |
關鍵詞白名單。非空時,只接收包含指定詞的短信。 |
注意:由於默認監聽地址爲
0.0.0.0,任何能訪問該 IP 和端口的設備都可以向其發送 POST 請求。建議僅在可信網絡內使用,或在手機端的轉發 App 中限制來源 IP。
使用方法¶
1. 手機端設置¶
使用任何支持 HTTP 轉發的 App(如 SMS Forwarder、Tasker、iOS 快捷指令)配置轉發目標:
- URL:
POST http://<電腦IP>:8899/ - Headers:
Content-Type: application/json
發送的 JSON 數據需包含以下字段(支持常見別名):
{
"from": "10086",
"body": "您的驗證碼是 123456,5 分鐘內有效。",
"receivedAt": 1787180000000,
"device": "Pixel 8"
}
from: 發送方號碼(也可用sender,number,phone)。body: 短信內容(也可用text,message,content)。receivedAt: 接收時間戳(可選,省略則使用服務器當前時間)。
2. 模型查詢接口¶
安裝並運行後,插件會暴露 HTTP 接口和 DSH 工具:
- 接收短信:
POST http://<電腦IP>:8899/- 返回
200: 短信已成功存儲。 - 返回
202: 短信內容因關鍵詞過濾未存儲。
- 返回
- 查詢最近短信:
GET http://<電腦IP>:8899/?limit=20&q=驗證碼limit: 返回條數。q: 搜索關鍵詞(可選)。
- 存活探針:
GET http://<電腦IP>:8899/health
適用場景¶
該插件適合需要將手機短信數據引入本地 LLM 流程的場景。典型應用包括:
- 自動提取並讀取收到的驗證碼。
- 對特定來源(如銀行、快遞)的短信進行歸檔和檢索。
- 通過關鍵詞白名單過濾無關廣告短信。
結語¶
dsh-sms-webhook 通過簡單的 HTTP 接口和文件存儲,打通了手機短信與本地 DeepSeek Harness 之間的數據鏈路。其自動提取 OTP 的特性降低了驗證碼處理的門檻。更多技術細節和源碼,可查看其 GitHub 倉庫。