dsh-line-bot:把 LINE Messaging API 接進 DeepSeek Harness

前言

在 DeepSeek Harness(DSH)裏跑 Agent,常見入口是桌面或 Web 對話。若要把同一套助理接到 LINE 官方賬號,需要自己處理 Messaging API 的 webhook、簽章驗證、公網可達地址,還要決定每條 LINE 消息如何映射到 DSH 的 session 與 Agent 回合。自行搭 nginx 反代、證書與回調腳本,步驟多且容易和 DSH 進程生命週期脫節。

下面介紹社區插件 dsh-line-bot(維護者 Hanson0901,GitHub 倉庫 Hanson0901/dsh-line-bot,SkillHub 分類爲聯網工具)。它在本機起 webhook 服務,可選 Cloudflare Tunnel 暴露 HTTPS,在同一個 DSH 進程內用 Agent 生成回覆,並在「設定 → LINE Bot」提供完整配置面板。

這是什麼

dsh-line-bot 是把 LINE 官方賬號(Messaging API)接入 DSH 的 bundle 插件。用戶通過 LINE 發消息,插件驗章、排隊、映射到 per-user(或 per-group)的 DSH session,調用 agents.create / agents.resume 與 followup,再把 assistant 文本通過 LINE reply 或 push 送回。

人設有兩種來源:已安裝大肥魚外掛 dsh-persona-dafeiyu 時可在面板選擇其人設;未安裝時也可僅使用插件內建自訂人設(存於 personas.json),不依賴其他個性外掛。當前 package 版本爲 0.10.5,許可證 MIT。

核心功能

Webhook 與隧道

  • 在本機 127.0.0.1 啓動 HTTP server,處理 LINE 的 X-Line-Signature 驗章、事件去重、每位使用者各自的隊列。
  • Cloudflare Tunnel:可一鍵 quick tunnel(*.trycloudflare.com,無需 Cloudflare 賬號),或粘貼 API Token 建立具名隧道與 DNS,取得固定網址;隧道就緒後會自動把 webhook 端點寫回 LINE 並執行 webhook/test。

LINE 憑據

在面板填寫 Channel ID 與 Channel Secret 即可自動簽發 access token(/v2/oauth/accessToken,約 30 天,臨近到期自動續簽);也可直接粘貼既有 Channel Access Token。

說明:LINE 自 2024-09 起 Messaging API channel 須在 LINE Official Account Manager 手動建立,插件不代建 bot,但會給出入口鏈接,並在拿到 Channel ID / Secret 之後自動化簽發 token、設置 webhook 與測試。

對話與回覆行爲

  • 分段回覆:可按空行(段落)或換行拆成多條 LINE 消息,最多 5 則;面板可切換或關閉。
  • 合併連續消息:模型仍在處理上一則時,用戶又補發內容會先排隊,本輪結束後合併再回應一次。
  • 主動傳訊:內建排程器(不依賴 launchd),每位使用者獨立隨機倒計時;可調最短/最長間隔、每日/每月上限、兩則間距、安靜時段、idle 與連續未回覆上限等;Agent 可回 SKIP 跳過不合適的發送。

面板與數據

所有設定位於 DSH 設定 → LINE Bot,主要寫入 <DSH_HOME>/line-bot/config.json(默認 DSH_HOME 爲 ~/.dsh,權限 600)。另有 state.json、每日日誌 logs/YYYY-MM-DD.log。面板區塊涵蓋狀態總覽、憑據、隧道、模型與接口來源、回覆人設、貼吧學習同步、玩梗、個人記憶、表情包(需 dsh-meme)、語音、貼圖與圖片理解、DeepSeek 餘額(僅 deepseek-account)、主動傳訊、使用者與羣組、進階設定等。

可選搭配外掛

外掛 用途
dsh-persona-dafeiyu 人設清單、貼吧同步(建議)
dsh-meme 回圖片/貼圖(建議)
dsh-tieba-dive 貼吧學習來源(可選)

CLI 安裝時可一併安裝:npx dsh-line-bot install --with-companions。

安裝與啓用

環境要求:DeepSeek Harness ≥ 0.2.0-rc.1、Node.js ≥ 22。大肥魚外掛爲選用。

方式一:面板安裝(推薦)

DSH → 設定 → 外掛 → 安裝 bundle,輸入 dsh-line-bot 後安裝,刷新頁面。設定左側會出現 LINE Bot。

方式二:npx 一鍵安裝

先完全退出 DSH(確認無殘留進程),再執行:

npx dsh-line-bot install

默認安裝到 desktop profile,可用 --profile <名稱> 指定。安裝完成後需重開 DSH。

查看狀態或卸載:

npx dsh-line-bot status
npx dsh-line-bot uninstall

卸載後設定與憑據會保留。

方式三:手動

dsh plugin --profile desktop add dsh-line-bot

並將 dsh-line-bot 加入 ~/.dsh/profiles/desktop/package.json 的 dsh.profile.bundles 數組,或改用面板安裝。

尚未發佈到 npm 時,可從 GitHub 安裝:

npx github:Hanson0901/dsh-line-bot install --spec github:Hanson0901/dsh-line-bot

典型用法:第一次上線

README 歸納爲五步,可按面板對應區塊操作。

  1. 建立/取得憑據:在 LINE Official Account Manager 與 LINE Developers Console 建立 Messaging API channel,開啓 Use webhook,複製 Channel ID 與 Channel secret。
  2. 填入面板:「LINE Bot → LINE 憑據」粘貼 ID 與 Secret,保存後「驗證並讀取 bot 信息」。
  3. 啓動 webhook:「狀態總覽」按「啓動全部」,或分別啓動 webhook server 與 tunnel(默認可自動啓動)。
  4. 開隧道:Quick tunnel 按「啓動隧道」;固定網址則在 Cloudflare 區粘貼 API Token 並「建立/更新隧道與 DNS」(Token 需 Account Cloudflare Tunnel Edit、Zone DNS Edit、Zone Read 等權限)。
  5. Webhook 與好友:隧道就緒後自動 PUT 到 LINE;必要時手動「把隧道網址套到 webhook」並「測試 webhook」。在 LINE 加好友後,首條消息會進入「待審覈」,在面板「使用者」覈准後纔開始回覆(白名單默認爲空)。

羣聊中:被 @ 或被引用一定回覆;其餘消息按「羣組回覆機率」(默認 15%)隨機。一對一與羣組各有獨立 session、工作文件夾與人設。

適用場景與注意

適合:已在 DSH 中運行 Agent,希望把同一套能力(含可選人設、記憶、多模態回覆)接到 LINE 官方賬號;本機可跑 Node 22+ 與 DSH ≥ 0.2.0-rc.1,並願意在 LINE Developers 自行建 channel。

注意:

  • 插件以當前 DSH 進程權限運行,會讀寫 ~/.dsh/line-bot/ 下的配置、狀態與用戶工作目錄;安裝前請閱讀倉庫源碼與 MIT 許可證,自行評估憑據與 Cloudflare Token 的存放方式(面板不回傳 secret 明文,但進程仍可訪問本地文件)。
  • Quick tunnel 每次重啓網址會變,插件會嘗試寫回 LINE webhook;生產環境更宜用具名隧道或自行提供的公開網址。
  • 社區目錄 SkillHub 插件頁 與 GitHub 由社區維護,與 DeepSeek / 幻方無官方從屬關係;星標與版本以倉庫爲準(資料抓取時 GitHub 約 5 stars)。

結尾

經過上面的步驟,dsh-line-bot 把 LINE webhook、隧道、憑據續簽與 Agent 回合收攏進 DSH 插件與單一配置面板,減少自建回調鏈路的重複工作。細節與故障排除見倉庫 README 與 TROUBLESHOOTING.md;目錄入口:https://www.skillhub.cn/plugins/Hanson0901/dsh-line-bot,源碼:https://github.com/Hanson0901/dsh-line-bot。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜