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。

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

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

小夜