前言¶
DeepSeek Harness (DSH) 採用插件化架構,旨在通過擴展點實現功能的靈活集成。dsh-telegram 是一個客戶端插件,它爲 DSH 提供了一個 Telegram 渠道。用戶可以通過 Telegram 機器人與 Harness 代理對話,代理會使用相同的工具和會話日誌響應。這個插件解決了在手機上遠程訪問代理的需求,無需在服務器上保持 Shell 打開,也不依賴 OpenClaw 或 Hermes 等現有中間件。
插件定位¶
這是一個由 sazzadurrahmaan 維護的插件。它的核心設計理念是將“通過聊天應用進行遠程 Shell 訪問”視爲主要功能,而非邊緣細節。
核心功能¶
- 默認拒絕白名單機制:這是安全的第一道防線。插件使用數字 Telegram 用戶 ID 進行校驗。空白的白名單意味着拒絕所有訪問。只有被允許的用戶 ID 才能將消息發送給代理。
- 破壞性工具的聊天內批准:對於
bash、pwsh、terminal、write、edit和str_replace_editor等危險工具,執行前會觸發一個tools/pre-execute門控。系統會在聊天界面中彈出“允許/拒絕”按鈕。只有發起請求的聊天窗口可以響應,且使用隨機 UUID 作爲回調令牌。未在超時時間內響應的請求將被拒絕。 - 會話隔離:每個聊天對應一個獨立的代理實例。使用
/new命令會銷燬當前代理並啓動新會話。用戶之間沒有共享會話。 - 無依賴架構:插件不依賴額外的網絡框架或 Bot 庫。它直接使用
fetch調用 Bot API,並通過長輪詢 (long polling) 獲取更新。整個客戶端代碼包含在一個小文件中。
安裝與配置¶
- 安裝插件:
使用以下命令安裝插件到web配置文件中:
dsh plugin --profile web add github:sazzadurrahmaan/dsh-telegram
- 配置環境變量:
安裝後需要設置 Telegram Bot Token 和允許的用戶 ID。
export DSH_TELEGRAM_TOKEN='123456:ABC...' # 從 @BotFather 獲取
export DSH_TELEGRAM_ALLOWED_USER_IDS='123456789' # 你的數字用戶 ID
- 配置文件方式:
也可以在~/.dsh/cordis.patch.yml中直接配置:
plugins:
dsh-telegram:
token: ${DSH_TELEGRAM_TOKEN}
allowedUserIds: [123456789]
cwd: /home/dsh/workspace
常用命令¶
在 Telegram 聊天中可以使用以下命令:
/start: 顯示命令列表。/new: 銷燬當前聊天的代理並開始一個全新的會話。/stop: 取消當前正在運行的回合。/status: 查看會話 ID 和代理狀態。/whoami: 獲取你的 Telegram 數字用戶 ID。這是唯一一個無需白名單即可響應的命令,用於獲取配置所需的 ID。
安全與使用注意¶
- 白名單是唯一防線:任何人都可以通過 Telegram 用戶名找到你的機器人並嘗試發送消息。確保
allowedUserIds準確無誤,且不要從不受信任的來源設置此值。 - 破壞性工具配置:如果將配置項
allowDestructiveTools設置爲true,將移除所有批准提示。此時,被允許的用戶可以通過手機直接運行任何 Harness 能運行的命令,沒有任何二次確認。 - 羣組限制:插件不支持羣組聊天。將機器人添加到羣組會導致所有成員的消息到達,雖然只有白名單用戶會被響應,但這擴大了攻擊面。請使用私聊。
- Token 權限:Bot Token 意味着對機器人的完全控制權。請將 Token 存儲在環境變量中,不要提交到代碼倉庫或配置文件中。
- 開發者預覽:當前 Harness 版本爲
0.1.x,處於開發者預覽階段,可能會出現破壞性變更。建議在使用前固定 Harness 版本。
結語¶
dsh-telegram 提供了在移動端安全訪問 DeepSeek Harness 代理的能力。通過嚴格的默認拒絕策略和交互式批准流程,它在便利性與安全性之間做了平衡。對於需要在移動場景下使用 Harness 的開發者,這是一個實用的工具。