跳到主内容

dsh-lark-link

25Star6Fork0Issue1Watching

把 DSH 智能体接入飞书/Lark,扫码 30 秒上线,飞书里直接对话 Agent、收发图片文件、切换模型模式。

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

安装

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

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

对话式安装

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

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

一句话定位

把 DeepSeek Harness(DSH)智能体接入飞书/Lark,让你在飞书聊天窗口里直接和 Agent 对话、跑工具、发图收图。扫码 30 秒创建一个飞书机器人,无需手动配置回调或开放平台。

核心能力

  • 扫码一键创建飞书机器人,省去手动注册开放平台、配置回调和公网服务器
  • 每个飞书会话绑定一个独立 Agent,工作区、模型、Agent 模式按飞书对话隔离
  • 切换类命令(/mode /permission /model)全部用卡片单选按钮,点一下即切换
  • 出站消息走持久 Outbox(JSONL 落盘 + 幂等键 + at-least-once),插件/DSH 重启后自动续投不丢失
  • 入站请求在交给 Agent 之前先持久化(WAL),中途崩溃后自动重新触发这条用户消息
  • 飞书发的图片自动给多模态模型看,发文件做文本提取后并入提示词
  • 模型主动回传本地文件/图片到当前飞书会话(工作区内 + 大小校验)

技术实现

  • 语言: TypeScript
  • 关键依赖: @larksuiteoapi/node-sdk(飞书官方 SDK)、@deepseek-ai/cordis(DSH 插件运行时)、@deepseek-ai/dsh-*-*(DSH 业务服务)、qrcode(注册二维码)、fflate(诊断包压缩)
  • 架构模式: Cordis dsh.bundle 格式插件(cordis.patch.yml 自动并入宿主 profile),分层:host(SDK 适配+认证)→ inbound(传输+群触发+断连补偿+Inbound WAL)→ application(命令路由+消息编排+诊断)→ outbound(Outbox+事件转发+卡片)→ sessions(每会话 Agent 管理)。同时附带一个 Web 客户端子包(./client)注入 DSH Web GUI 侧边栏,显示桥接状态和扫码面板
  • 入口文件: src/index.ts(Cordis 插件主入口,~2700 行装配层);客户端入口 src/client/index.ts

适用场景

把 DSH 装进手机飞书,让 Agent 跟着你走:通勤路上让 Agent 帮你改代码、调数据、看图,不需要守在终端前。也适合把 Agent 拉进工作群,作为团队可对话的工具人;对每个飞书对话/群独立隔离工作区和会话,多人共用一个 DSH 实例互不干扰。

前置依赖与兼容性

依赖最低版本说明
DSH 宿主0.1.0-rc.6+通过 @deepseek-ai/dsh-* 系列的多个 peer 依赖锁定,需与 DSH Web GUI 配套使用
Node.js>=24.0.0engines.node 字段声明
平台跨平台macOS / Windows / Linux 均支持;Windows 路径、: 等保留字符在文件名/工作区切换中已加固处理
原生模块无仅依赖纯 JS 包,无 node-gyp/平台原生库

安装方式

dsh plugin --profile web add github:amlyczz/dsh-lark-link

配置项

配置类型说明默认值
groupPolicystring群聊触发策略:open(免 @ 全触发)/ mention / keywords / replyopen
groupKeywordsstring[]keywords 模式下的触发词列表["lark","小斯"]
alsoOnReplyboolean当用户回复机器人消息时是否也触发(reply/mention 策略相关)true
agentPresetstringAgent preset:standard / code / minimal / cordis,或 GUI 自建 preset idcode
permissionModestringAgent 权限档位:read-only / workspace-write / danger-full-access(仅作用于桥会话)danger-full-access
streaming.enabledboolean启用 CardKit schema 2.0 流式卡片,逐字打印(默认关,节省流量)false
reactions.enabledboolean表情回执(收到消息随机表情、完成时打 DONE)true
allowliststring[]允许对话的飞书 open_id 白名单,空 = 不限制[]
denyListstring[]直接拒绝的命令前缀列表(无回复无卡片)[]
workspaceRootstring桥会话的工作区根目录(cwd),空 = 当前进程目录""
attachments.dirstring入站图片/文件落盘根目录(空 = 系统临时目录,重启生效)""
attachments.retentionHoursnumber入站媒体保留时长(小时;0 = 永久保留),可用 /lark-config 热改168(7 天)

飞书应用凭据(appId / appSecret)存放在 DSH credentials 服务而非配置文件,扫码或环境变量 DSH_LARK_APP_ID / DSH_LARK_APP_SECRET 写入。所有配置支持 /lark-config key=value 热改并立即生效。

常见问题

Q: 怎么把 DSH 装进飞书?

A: 安装插件后在 DSH Web GUI 输入框运行 /lark setup,侧边栏 Lark 面板会显示二维码;手机飞书扫码确认后自动创建飞书应用、订阅消息事件并授予所需权限。完成后 /lark start 启动桥接,飞书里搜索你的机器人发消息即可。

Q: 不想扫码,能不能手动填 appId/appSecret?

A: 可以。在环境变量里设 DSH_LARK_APP_ID 和 DSH_LARK_APP_SECRET(国际版加设 DSH_LARK_DOMAIN=lark),再运行 /lark setup,凭据会写入 DSH credentials 服务并跳过 QR 流程。

Q: 群聊必须 @ 机器人吗?

A: 默认 groupPolicy=open,免 @ 全触发,群聊里直接说话就行。需要收紧时用 /lark-config groupPolicy=mention|keywords|reply 热改;keywords 模式下默认触发词是「lark」和「小斯」,可改 groupKeywords。

Q: 消息会不会丢?插件崩了会怎样?

A: 出站消息全部经过持久 Outbox(JSONL 落盘、at-least-once、幂等键),插件或 DSH 进程被杀后下次启动自动续投;入站请求在交给 Agent 之前先写入 Inbound WAL,如果 Agent 处理中途崩溃,重启后这条用户消息会被自动重新触发,不静默丢请求。

Q: 飞书发的图片和文件 Agent 怎么看到?

A: 图片自动下载到本地(系统临时目录,默认保留 7 天)并生成视觉模型的 ImageBlock,多模态模型可识别;非视觉模型改走纯文本路径,会在提示词里告诉 Agent 图片已保存到本地路径,Agent 可用文件工具读取。文件则做有界文本提取后并入提示词。

Q: 怎么卸载?凭据会被清除吗?

A: 在飞书或 GUI 侧运行 /lark uninstall-clean:停止桥接、清除 DSH credentials 里的 appId/appSecret、删除状态目录(配置/路由/Outbox/WAL)。再 /lark setup 即可重新配置。仅删除插件包不会清凭据,状态保留。

Q: 出问题了怎么排查?

A: 在飞书给机器人发 /doctor,会回传一个 ZIP 诊断包(含当前会话的 DSH session log + 脱敏配置 + ISSUE.md 模板),贴给任意 AI 即可定位;/status 实时显示连接状态、Outbox 待发/失败条数、Inbound WAL 待补发数。

上手难度

入门 — 装插件 → /lark setup 扫码 → /lark start 三步就能用,常用配置通过 /lark-config key=value 热改无需重启,普通用户可独立完成。

已知问题与限制

  • 飞书 CardKit 流式卡片依赖应用已开通 cardkit:card 权限并使用较新版本飞书客户端;未开通或客户端过旧时首次创建失败会在聊天里提示一次,后续自动回退到普通消息发送
  • 流式功能默认关闭,开启后(/lark-config streaming.enabled=true)会显著增加飞书 OpenAPI 调用频次,需自行评估配额
  • /lark setup 扫码通道有 30 秒二维码有效期;过期后重跑命令即可重新生成
  • 入站附件默认存系统临时目录(OS 可能随时回收),如需长期保留需将 attachments.dir 指向持久目录并把 attachments.retentionHours 设为 0

查看使用指南 →

该插件的安装步骤、关键要点、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/amlyczz/dsh-lark-link)

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

返回插件目录