前言¶
DeepSeek Harness(DSH)把模型、Agent 和工具链收进同一套宿主里,日常开发却常卡在「人不在电脑前」:手机上的飞书能聊,但很难等价地切换会话、改工作区、看流式进度,或按多租户方式隔离不同飞书应用。自建 Webhook 机器人可以转发消息,却要自己管凭据、队列、会话路由和卡片展示,和维护成本叠在一起。
下面介绍社区插件 @very12345/dsh-lark-link(仓库 Very12345/dsh-lark-link)。它是 amlyczz/dsh-lark-link 的分叉,由 Very12345 维护,目标是把飞书/Lark 与 DSH 做成双向桥:消息进 DSH 执行,结果以卡片(含流式状态)回到飞书,并支持多应用、多用户隔离与会话管理。插件归类为工作流;SkillHub 目录页见 skillhub.cn/plugins/Very12345/dsh-lark-link。DSH 生态强调「一切皆插件」,SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-lark-link 是独立的 DSH 飞书/Lark 桥接插件,npm 包名 @very12345/dsh-lark-link,许可证 MIT。兼容官方 DSH 0.2 系列;开发与运行要求 Node.js >= 24。它直接使用 DSH 的模型与会话,不要求 WebAgent 应用或网页模型后端;若要在飞书里走网页模型,需另装 dsh-webagent-integration 并连接其后端。
凭据、入站 WAL、Outbox 和运行状态由插件管理;模型与 Agent 执行仍由 DSH 承担。飞书侧的模型工具及桥接提示词只挂在「从飞书创建或恢复」的 Agent 上,普通桌面/网页对话不会出现这些工具;DSH 侧 /lark 管理命令仍可用。
核心功能¶
消息与执行¶
- 飞书消息与 DSH 双向桥接,支持流式卡片和停止当前任务。
- 图片走视觉模型;文件走文本提取。
- 模型发起的确认类提问会转成飞书意图确认卡片,可点选或输入作答。
- 原生 DSH 斜杠命令(如
/compact)可在飞书侧触发,结果回传到飞书。
多应用与隔离¶
- 多应用、多用户下的路由、会话、工作区与模型白名单相互隔离。
- 模型白名单是强制策略:会话若引用被取消的模型会回落到该应用默认允许模型;飞书发
/model provider/model也不能越权。白名单仅能从 Web UI 的 Lark 管理面板修改,不提供/lark-config旁路。
飞书侧操作面¶
- 按钮式命令面板(如
/menu)、单选卡片切换模式/权限/模型/思考档位、目标控制台、会话切换与确认、目录浏览器(/workspace、/files)、结构化/status、用量与诊断等。 - 每条命令回复落在独立折叠面板里(执行中/成功/失败分色),同一张卡片原地更新,避免刷屏。
/doctor可打包 ZIP 诊断(session log、脱敏配置、ISSUE 模板);/reconnect用于断连自救。
配置与凭据¶
- App ID / Secret 写入 DSH 凭据服务,不进普通配置文件;
/lark setup扫码与 Web UI Lark 面板写入同一引用。 - 常用项可通过
/lark-config或/stream on|off热改并持久化(群策略、流式卡片、表情回执、工作区根、附件保留等,详见下文配置表)。
安装与启用¶
安装¶
在 DSH 宿主上执行(桌面 profile 示例;CLI WebUI 可选用 --profile web):
dsh plugin --profile desktop add github:Very12345/dsh-lark-link
也可在仓库内 npm pack 后本地安装:
dsh plugin --profile <name> add file:/absolute/path/package.tgz
Git URL 安装依赖仓库内已提交的 dist/;若修改 src/ 须先 npm run build。加载新版本后需重启对应 DSH 宿主/profile。
若安装器提示 protobufjs 构建脚本被阻止,按提示执行:
dsh plugin --profile <name> approve-builds protobufjs
bundle 中的加载名须为 @very12345/dsh-lark-link,避免与上游裸包名混用。
首次配置与启动¶
- 在 DSH 输入框执行
/lark setup(扫码一键建应用,或使用环境变量DSH_LARK_APP_ID/DSH_LARK_APP_SECRET手动通道)。 - 执行
/lark start启动桥接。 - 在 Web UI 的 Lark 管理面板配置多应用及模型白名单。
生命周期与健康检查:
/lark setup
/lark start|stop|restart|status
/lark uninstall-clean
/lark uninstall-clean 会清除凭据与状态目录;更换 App ID 时插件会先停旧 WebSocket 并清空旧机器人相关路由与 WAL,避免消息重放。
典型用法¶
DSH 侧¶
桥接启停与状态见上一节。卸载清理用 /lark uninstall-clean。
飞书侧(卡片化,无需死记拼写)¶
| 类别 | 命令 | 行为概要 |
|---|---|---|
| 控制面板 | /menu |
分组按钮,一点即执行 |
| 选择 | /mode /permission /model /reasoning(/thinking 同义) |
单选卡片切换 |
| 目标 | /goal [目标\|pause\|resume\|clear] |
目标控制台与模板按钮 |
| 状态 | /status /usage /whoami /help |
健康卡、用量、当前会话、命令清单 |
| 会话 | /new /resume /sessions /stop |
新会话(确认卡)、恢复、列表、停任务 |
| 工作区 | /workspace /cwd /files [路径] |
目录浏览与切换;可浏览到文件系统根,但模型工具 lark_send_local_file 仅允许发送当前工作区内文件 |
| 诊断 | /doctor /reconnect |
诊断 ZIP / 重连 |
| 热改 | /lark-config /stream on\|off |
流式、表情回执、群策略等按钮面板 |
| 桥管理 | /lark [子命令] |
无参时为按钮面板 |
斜杠消息要么由桥处理,要么原样交给 DSH,不会静默丢弃;非命令内容可直接描述任务。
常用配置(/lark-config,立即生效)¶
| 配置键 | 默认 | 说明 |
|---|---|---|
groupPolicy |
open |
群聊触发:open / mention / keywords / reply |
groupKeywords |
["lark","bot"] |
keywords 模式触发词 |
agentPreset |
code |
preset:standard/code/minimal/cordis 或 GUI 自建 id |
permissionMode |
danger-full-access |
read-only / workspace-write / danger-full-access |
streaming.enabled |
true |
CardKit 流式卡片 |
reactions.enabled |
true |
表情回执 |
reactions.receipt / done / error |
OnIt / DONE / ERROR |
三态 emoji(须为飞书官方目录内类型) |
allowlist |
[] |
open_id 白名单,空表示不限制 |
denyList |
[] |
命令前缀拒绝 |
workspaceRoot |
`` | 桥会话工作区根,空则用 process.cwd() |
attachments.retentionHours |
168 |
入站媒体保留小时数,0 为永久 |
attachments.dir |
`` | 入站媒体目录覆盖,空为系统 tmpdir |
适用场景与注意¶
适合谁: 已在用 DSH 0.2、希望在飞书/Lark 里完成会话切换、工作区浏览、模型与权限切换,并需要多飞书应用隔离的团队或个人;分类上属于工作流向桥接,而不是替代 DSH 桌面本身。
运行与权限: 插件随当前 DSH 进程权限运行,可触达该进程能访问的文件与网络;安装前应阅读源码与 MIT 许可证,确认群策略(默认 groupPolicy: open 会在群内免 @ 触发)是否符合你的安全预期。
环境: Node.js >= 24;peer 依赖对齐 DSH 0.2-rc 系列 SDK(如 @deepseek-ai/dsh-agent 等,以 package.json 为准)。当前发布版本号为 0.6.0-webagent.9(以仓库 package.json 为准,勿凭旧上游 README 推断)。
排错: 飞书发 /doctor 取诊断包;/status 查看连接、Outbox、补发与会话链路。问题可提交 GitHub Issues。
结尾¶
dsh-lark-link 把飞书变成 DSH 的可操作前端:流式卡片、会话与工作区管理、多应用隔离和诊断工具都落在插件内,DSH 仍负责模型与 Agent。若你要在移动端或协作场景里延续同一套 Harness 工作流,可按上文命令安装、setup 与 start,再在 Lark 管理面板收紧模型与白名单策略。