在本地部署 DeepSeek Harness 智能体时,模型通常无法直接访问手机短信。要解决这个问题,需要一个本地 HTTP 服务来接收短信转发应用的数据,并将存储暴露给模型查询。huaxiren6/dsh-sms-webhook 正是这样一款插件。
是什么¶
这是 DeepSeek Harness 的短信转发 Webhook 插件,由用户 huaxiren6 维护。它接收手机端短信转发 App(如 SMS Forwarder)发送的推送,将短信内容落盘存储,并提供 sms_recent 和 sms_search 两个工具,供模型调用。
核心功能¶
- 接收与存储:接收短信并落盘存储。
- 模型工具:提供
sms_recent工具查询最近短信,提供sms_search工具全文搜索。 - 验证码提取:自动提取验证码(生成
otp字段)。 - 过滤机制:支持关键词白名单过滤。
- 数据格式:JSONL 格式存储,支持自动裁剪(上限 5000 条)。
安装与启用¶
使用官方命令安装:
dsh plugin --profile web add dsh-sms-webhook
安装完成后,插件会监听本地端口,等待手机端发送的 POST 请求。
典型用法¶
手机端配置¶
使用任意支持「转发短信到 HTTP」的 App,例如 SMS Forwarder、Tasker 或 iOS 快捷指令。转发目标地址填:
POST http://<电脑IP>:8899/
Content-Type: application/json
发送的 JSON 数据支持常见别名:
{
"from": "10086",
"body": "您的验证码是 123456,5 分钟内有效。",
"receivedAt": 1787180000000,
"device": "Pixel 8"
}
字段 from 可写作 sender、number 或 phone,body 可写作 text、message 或 content。若未提供时间戳,服务器会使用当前时间。
HTTP 接口¶
| 方法/路径 | 用途 |
|---|---|
POST / |
接收短信(200=已存储,202=被关键词过滤) |
GET /?limit=20&q=验证码 |
查询最近短信(q 可选过滤) |
GET /health |
存活探针 |
配置说明¶
插件支持以下配置项(通常在配置文件中设置):
| 键 | 默认值 | 含义 |
|---|---|---|
host |
0.0.0.0 |
监听地址 |
port |
8899 |
监听端口 |
store |
$DSH_HOME/data/dsh-sms-webhook/messages.jsonl |
存储文件路径 |
keywords |
[] |
非空时只收含这些词的消息(如 ["验证码", "code"]) |
适用场景与注意¶
- 使用场景:适合需要在本地模型中读取短信验证码或历史短信内容的开发者。
- 安全注意:监听地址
0.0.0.0意味着局域网内任何人都能发起 POST 请求。建议在手机 App 里限制来源,或仅在可信网络使用。 - 存储限制:存储文件上限为 5000 条,超出后会自动裁剪旧数据。
该插件采用 MIT 许可证。
总结¶
该插件解决了本地智能体读取短信的痛点,通过简单的 Webhook 接口实现了短信的接收、存储和查询。对于需要处理验证码或短信信息的场景,这是一个直接可用的方案。