跳到主内容

dsh-lark-bot

27Star4Fork27Issue1Watching

把本机 DeepSeek Harness(dsh)装进飞书/Lark 的 bot,扫码即用:在私聊/群聊/话题里指挥 coding agent,流式卡片实时展示思考与工具调用,dsh 崩溃后仍可远程自愈。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
AGPL-3.0
分支
main
ai-agentbotbridgechatbotdeepseekdeepseek-harnessdshdsh-plugin

安装

命令web profile
$ dsh plugin --profile web add dsh-lark-bot

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 PlutoKeating/dsh-lark-bot:先查看仓库 https://github.com/PlutoKeating/dsh-lark-bot 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

把本机 DeepSeek Harness (dsh) 装进飞书/Lark 的 bot:在手机、私聊、群聊、话题里直接指挥 dsh coding agent,飞书原生折叠卡片实时展示思考与工具调用,任务完成可跨群主动推送并 @ 你,dsh 崩溃时仍能远程自救。

核心能力

  • 在飞书/Lark 私聊、群聊、话题(thread)里直接给 dsh coding agent 发指令,图片和文本文件直接发给 bot 即可作为附件传入
  • 用飞书原生折叠卡片实时展示思考过程和工具调用结果,最终回答单独成消息,支持审批卡、问答卡、计划门禁卡等交互按钮
  • Git 仓库内为每个会话自动创建独立的 git worktree 项目工作区,多项目互不干扰
  • 内置「安全网守护」:独立于 dsh 进程常驻,dsh 崩溃或掉线时接管飞书通道,发 /safemode 进入仅核心安全模式远程定位并修复问题
  • 提供 dsh Web 可视化设置页面:账号凭据、服务区域、默认项目、默认模型、并行任务数、主动提醒策略等所有项可点选保存
  • 跨会话主动通知 + @ 人,agent 可调用 lark_notify 把结果推到任意群;持久任务账本支持 /jobs 对账、重试失败任务

技术实现

  • 语言: TypeScript(ESM,Node.js 22.19+)
  • 关键依赖: @deepseek-ai/cordis(宿主服务总线)、@larksuite/channel(飞书 WebSocket 长连接)、@deepseek-ai/dsh-sdk-client(agent runtime)、@deepseek-ai/schemastery(设置 schema)
  • 架构模式: 作为标准 dsh profile bundle 通过 cordis.patch.yml 一次性注入 5 个 Cordis 子插件:dsh-lark-bot/plugin(主引擎,含飞书通道、会话路由、agent adapter、notify 服务端)+ lark-notify/lark-file/lark-plan-approval/lark-approval-answerer(对应 host agent 的 lark_notify / lark_send_file / 计划门禁 / 工具审批挂载点)。同时向 dsh Web 注入 @deepseek-ai/dsh-client-ui-settings-plugins 提供可视化设置面板。
  • 入口文件: src/plugin.ts(Cordis 入口,导出 apply / LarkBridgeService / Config)+ src/cli.ts(CLI 入口 setup / upgrade / bot / service / guardian / doctor)

适用场景

适合经常离开工位、需要用手机或在飞书群聊里继续驱动 dsh coding agent 的开发者与协作团队:远程发起任务、跨设备继续会话、多项目隔离、跨群派发结果通知,以及担心 dsh 崩溃后失联、希望「飞书始终叫得应」的工作流。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness (dsh)0.1.0-rc.8dsh 本体必须先装好并配置 DEEPSEEK_API_KEY;setup 会自动修复旧版 runtime profile
Node.js>=22.19.0package.json engines 字段强制要求
平台macOS / Linux / Windows飞书通道使用 WebSocket 出站长连接,三平台一致;守护进程用 systemd user unit / LaunchAgent / Windows 计划任务托管
原生模块无运行时无 node-gyp 依赖;pnpm onlyBuiltDependencies 仅 esbuild 与 protobufjs

安装方式

dsh plugin --profile web add github:PlutoKeating/dsh-lark-bot

推荐安装路径:先 npx dsh-lark-bot@latest setup --profile dsh-lark 一键完成本机定位 + guardian 守护安装 + 插件装载,再用 dsh --profile dsh-lark 启动扫码绑定飞书应用。

配置项

所有项均可在 dsh Web 的「设置 → 插件 → dsh-lark-bot」页点选保存,App Secret 标记为只写不回显;也可用同名环境变量(DSH_LARK_*)覆盖。

配置类型说明默认值
profile字符串机器人配置名;通常保持 defaultdefault
home字符串本地数据目录;保存后自动重连~/.dsh-lark
tenant枚举服务区域:中国大陆选飞书,海外选 Larkfeishu
appId字符串飞书/Lark 应用 ID(cli_xxx 开头);保存后自动重连—
appSecret字符串应用密钥;只写不回显,保存后自动重连—
workspace字符串新会话默认打开的项目文件夹—
adapter枚举运行方式:sdk(推荐)/ acp / headless / web;保存后自动重连sdk
webUrl字符串仅 web 模式使用的本机 dsh Web 地址http://127.0.0.1:3080
sessionProjection布尔web 模式下同步 dsh 会话消息到飞书true
model字符串新任务默认使用的模型,例如 deepseek-v4-flash—
scopeConcurrency数字每个会话同时运行的任务数,建议 1–42
notificationDefault枚举未单独设置会话时的主动提醒:off / completed / alloff
disabled布尔暂停机器人;保存后立即停止false

常见问题

Q: 安装后怎么开始使用?

A: 先确保本机已装好 DeepSeek Harness 并配置 DEEPSEEK_API_KEY,运行 dsh --profile <profile名> 启动。首次启动终端会打印二维码,飞书/Lark App 扫码创建或选择 PersonalAgent 应用即可绑定。私聊直接发消息,群聊/话题默认需要 @bot。

Q: 需要公网 IP、域名或服务器吗?

A: 不需要。飞书通道使用 WebSocket 出站长连接,本机在 NAT 后也能用,免公网服务器、免域名、免内网穿透。

Q: dsh 进程崩溃或掉线后飞书 bot 还能用吗?

A: 可以。默认安装的安全网守护(guardian)独立于 dsh 常驻,dsh 掉线时自动接管飞书通道;发 /safemode 进入仅核心安全模式可远程定位/修复问题、禁用损坏插件,再 /safemode exit 交还通道。

Q: 多个项目/多人协作怎么隔离?

A: 每个会话自动落在独立 git worktree;群聊隔离可通过 /isolation 在整群共享/话题独立/成员独立之间切换;管理员可用 /role 定义 PM/开发/文档等多角色并绑定到不同 scope;多机器人实例用 dsh-lark-bot bot add 创建独立身份与凭据。

Q: 卸载会影响本地数据吗?

A: 仅运行 dsh plugin --profile <profile名> remove dsh-lark-bot 不会删除本地数据。配置、会话、归档、角色、凭据默认保留在 ~/.dsh-lark;如需彻底清除请手动备份后删除该目录。

Q: 报 ERR_PNPM_IGNORED_BUILDS 怎么办?

A: 按官方指引在 profile 的 pnpm-workspace.yaml 中加 allowBuilds: { protobufjs: true } 后重试即可。setup 命令会自动预批准这些构建策略(仅在手动 dsh plugin add 时才会触发该报错)。

Q: agent 长连接掉了会怎样?

A: SDK 适配器会自动重连并在恢复后向最近活跃会话发送恢复提示。机器睡眠或断网期间 WebSocket 无法收消息,恢复连接后会触发提示,不需要人工重启。

Q: ACP / SDK / web / headless 这些 adapter 有什么区别?

A: sdk(默认)走官方 dsh-sdk-client,支持原生 session 续跑与 token 级流式;acp 走官方 ACP server,审批体验更接近协议原生;web 驱动本地 dsh web agent 由网页端作为唯一写者;headless 是兼容旧版的子进程 fallback。新部署建议保持 sdk 或 acp。

上手难度

进阶 — 需要预先安装并配置好 dsh 与 DEEPSEEK_API_KEY,并在飞书开放平台创建 PersonalAgent 应用完成扫码绑定;但所有运行参数都可在 dsh Web 可视化设置页点选,绑定成功后即可在飞书里开聊。

已知问题与限制

  • ACP 模式每次会话全新启动(上游协议限制,无法续跑)— README.md:403
  • SDK 协议暂无 mid-turn cancel;/stop 会关闭对应 runtime 并自动重建 — README.md:403
  • 飞书文档评论与富文本回复为规划中能力,尚未实现 — README.md:409
  • 多机器人附加实例不支持 web adapter:共享 Web agent 事件流无法提供实例级 session 隔离,bot add 会拒绝 web — src/cli/commands/bot.ts:126
  • 桥接引擎作为 dsh 插件在 dsh 进程内运行(嵌套 runtime 是有意取舍,用于按工作区隔离的 runtime 池与 scope 内并行 run);唯一进程级例外是独立常驻的安全网守护
  • 系统睡眠或断网期间 WebSocket 无法接收消息,恢复后才会补偿;ACP 适配器对图片出站返回不支持(默认输出占位说明,不会静默丢弃)— src/adapters/dsh/acp-adapter.ts:54

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/PlutoKeating/dsh-lark-bot)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录