前言¶
DeepSeek Harness(dsh)把模型、工具、会话、沙箱和界面都做成可替换插件,官方说法是「Everything is a plugin」。本机 coding agent 因此可以按 profile 自由组装,但工作入口仍多半钉在电脑前的网页或终端上:人一离开工位,任务进度、审批和临时拍板就得等回到机器旁。
飞书 / Lark 已经是不少团队的日常协作面。把本机 dsh 接到私聊、群聊和话题里,等于把指挥权从桌面挪到手机,而不必把智能体搬到公网服务器上。社区目录「通知与集成」分类里有多条飞书通道,本文介绍其中由 PlutoKeating 维护的 dsh-lark-bot:它不只是把对话转进飞书,还把项目工作区、并行任务、角色分工和崩溃后的飞书自救收进同一套桥接。
下文按社区目录详情页、GitHub 仓库 README / package.json、npm 包页和 DeepSeek Harness 官方说明核对后整理。社区插件目录是独立站点,与 DeepSeek / 幻方没有官方从属关系,不要把它当成官方应用商店。
这是什么¶
dsh-lark-bot 是一款通知与集成插件,把本机 DeepSeek Harness 桥接进飞书 / Lark 机器人。维护者是 PlutoKeating,源码在 PlutoKeating/dsh-lark-bot,许可证为 AGPL-3.0,主要语言是 TypeScript。npm 上的同源包是 dsh-lark-bot 与 dsh-feishu-bot,当前版本为 0.15.0(2026-08-17 在 npm 与仓库 package.json 中一致)。GitHub 仓库当前 20 星;社区目录页显示 12 星,更接近收录时的快照。
目录页的定位是:把 DeepSeek Harness 桥接进飞书 / Lark 的 bot,含完整项目工作区管理。仓库 README 写得更具体:在私聊、群聊、话题里指挥本机 coding agent,发消息就收流式卡片和工具调用过程,并把对话、任务、卡片和项目工作区收进同一个协作流。仓库同时声明:这是非官方社区工具,与 DeepSeek、字节跳动 / 飞书(Lark)无关联,也未获得其背书。
它解决的是这类场景:人已经在飞书里协作,但不想为了改一行代码或看一次 diff 再切回电脑上的 dsh 网页;也不想暴露公网回调地址。桥接走飞书开放平台的 WebSocket 出站长连接,README 写明不需要公网服务器、域名或内网穿透。
核心功能¶
仓库 README 把能力拆成几块,下面只写两边资料能对上的部分。
飞书通道与流式卡片¶
绑定成功后,桥接引擎在 dsh 进程内运行。私聊直接发消息即可,群聊和话题里需要 @bot。回复以流式卡片呈现思考、工具调用和输出,可用 /density 在 compact / standard / detailed 之间切换卡片密度。飞书消息里的图片会下载到本地 media 目录再交给 dsh;文本类文件会读取内容并注入任务上下文。
默认适配器是官方 @deepseek-ai/dsh-sdk-client(DSH_LARK_ADAPTER=sdk)。需要审批卡时切到 acp;headless 是旧版子进程回退;web 则驱动本机 dsh web agent,让网页端成为会话的唯一写者。README 写明已对照 dsh 0.1.0-rc.6 做过 SDK / ACP 握手和真实任务流式验证(最后验证日期 2026-08-15)。
项目工作区¶
这是目录页强调的差异点。飞书里可以用:
/cd <路径>:切换工作目录并重置会话/ws list//ws save <名>//ws use <名>//ws remove <名>:命名工作空间的查看、保存、切换和删除
会话跑在 Git 仓库里时,bot 会在 ~/.dsh-lark/profiles/<profile>/worktrees/ 下为每个会话建隔离 worktree,并复制项目级 AGENTS.md。非 Git 目录则直接使用指定路径。工作区状态保存在本机 ~/.dsh-lark,不经过第三方遥测。
并行任务与多角色¶
同一 scope(私聊 / 群聊 / 话题)默认允许 2 个任务并行,可用 /concurrency 或环境变量 DSH_LARK_SCOPE_CONCURRENCY 调整;设为 1 即严格串行。连续发来的消息会变成独立 run,各自使用独立的 dsh session。/status 列出全部运行中的 run,/stop 一次终止当前 scope 里的全部任务。
管理员可用 /role save 定义 PM / 开发 / 文档等角色(人设、模型偏好、工具指引、角色规则),再用 /role set <角色> 绑到当前 scope。角色定义持久化在 ~/.dsh-lark/profiles/<profile>/roles.json。角色模型优先于默认模型,但仍低于当前会话的 /model use。
归档、跨会话通知和问答卡¶
每个飞书 scope 默认保留最近 40 条对话,可用 /retention 调整;超出窗口的消息归档到 ~/.dsh-lark/profiles/<profile>/archives/(Markdown + JSONL,目录本身是 Git 仓库)。/archive 可手动归档、查看和清理。
跨会话通知有两条路:管理员发 /notify <scope|chatId> <文本>;agent 侧则内置 lark_notify 工具,任务结束后可向其他群 / 话题推送并 @ 指定成员。回调监听在 127.0.0.1,带每次启动随机的 token,不暴露公网。
agent 需要拍板或补信息时,会通过 lark_ask_user 弹出问答卡(单选 / 多选 / 自由文本),回答后任务继续;等待期间运行超时看门狗暂停。用户也可以用 /ask 主动发结构化问题,方向正好相反。
对话内管理模型与密钥¶
/model、/providers、/provider、/key 直接读写 dsh 官方配置(~/.dsh/settings.yaml 与 ~/.dsh/.credentials.yaml,与网页 Settings → Models 同一套存储协议),下一轮请求生效,不必重启 bot。settings 只保存 apiKeyEnv 引用,字面密钥进凭据文件(权限 0600),不会回显在聊天回复里。仓库提醒:在飞书会话里输入密钥会对该会话可见成员暴露密钥,建议只在私聊使用,或用环境变量 / dsh 网页录入。
安全网守护¶
setup 默认安装一个独立于 dsh 的最小守护(Linux systemd user unit / macOS LaunchAgent / Windows 启动项)。dsh 正常时守护静默;进程下线或 profile 无法 boot 时,它接管飞书通道,用户不必碰命令行:
/safemode:进入仅核心安全模式(dsh-base+dsh-headless,不加载第三方插件)/safemode plugins:列出故障 profile 已装插件/safemode status//safemode stop//safemode exit:查看状态、停任务、退出并交还通道
不需要守护时,安装加 --no-guardian;单独卸载用 dsh-lark-bot guardian uninstall。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端运行即可:
dsh plugin add github:PlutoKeating/dsh-lark-bot
如需可复现安装,目录页写法是把 commit 哈希接在仓库后面:
dsh plugin add github:PlutoKeating/dsh-lark-bot#<commit>
仓库 README 把面向最终用户的路径写成另一条,并称为「唯一安装命令」:它会定位本机 dsh、预批准 pnpm 构建策略,再执行带版本钉扎的 dsh plugin --profile dsh-lark add dsh-lark-bot@<版本>,同时默认装上安全网守护。
npx dsh-lark-bot@latest setup --profile dsh-lark
前置条件见 docs/QUICK_START.md:Node.js ≥ 22.19、本机已安装 DeepSeek Harness 并配置好 DEEPSEEK_API_KEY、以及一个飞书 / Lark 账号。package.json 的 engines 与 README 一致。手动 dsh plugin add 时如果遇到 ERR_PNPM_IGNORED_BUILDS,README 要求在 profile 的 pnpm-workspace.yaml 加上 allowBuilds: { protobufjs: true } 后重试。
启动并完成首次绑定:
dsh --profile dsh-lark
首次启动会在终端打印二维码,用飞书 / Lark App 扫码创建或选择 PersonalAgent 应用。已有凭据时可跳过扫码:
DSH_LARK_APP_ID=cli_xxx DSH_LARK_APP_SECRET=<secret> DSH_LARK_TENANT=feishu \
dsh --profile dsh-lark
DSH_LARK_TENANT 为 feishu(国内飞书)或 lark(国际版)。卸载:
dsh plugin --profile dsh-lark remove dsh-lark-bot
卸载后本地状态仍留在 ~/.dsh-lark;若装过守护,还需执行 dsh-lark-bot guardian uninstall。v0.12.0 起可用 npx dsh-lark-bot@latest upgrade --profile dsh-lark --yes 升级包本体和守护。
典型用法¶
绑定完成后,在飞书里向 bot 发普通消息就会进入当前工作区上的 agent 任务。仓库列出的常用命令可以先记这几组:
| 命令 | 作用 |
|---|---|
/new /reset |
开始新会话 |
/cd <路径> |
切换工作目录并重置会话 |
/ws list /ws save /ws use |
查看、保存、切换命名工作空间 |
/status /stop |
查看运行中的任务 / 全部终止 |
/concurrency [N] |
查看或设置当前 scope 并行数 |
/role list /role set <角色> |
查看 / 绑定多角色 Agent |
/model /model use <模型> |
查看或热切换当前会话模型 |
/providers /key list |
查看 provider 与凭据引用 |
/archive /retention |
归档与保留窗口 |
/notify <scope> <文本> |
跨会话通知(管理员) |
/invite user\|admin\|group |
管理访问白名单 |
/help |
命令帮助 |
核心环境变量(完整表见 README,模板见仓库 .env.example):
| 变量 | 默认 | 说明 |
|---|---|---|
DSH_LARK_TENANT |
feishu |
feishu 或 lark |
DSH_LARK_ADAPTER |
sdk |
sdk / acp / headless / web |
DSH_LARK_WORKSPACE |
未设置 | 新会话默认工作目录 |
DSH_LARK_SCOPE_CONCURRENCY |
2 |
每 scope 并行任务数 |
DSH_LARK_ACCESS_DEFAULT_DENY |
false |
无白名单时是否拒绝私聊 |
启动异常时先跑 dsh-lark-bot doctor,它会检查 profile、工作目录,并对当前 adapter 做真实握手探测。
适用场景与注意事项¶
适合已经把日常沟通放在飞书 / Lark,又希望用手机或群聊指挥本机 dsh 的开发者和小团队,尤其是需要多项目隔离、角色分工、并行任务和会话归档的协作。目录页把同类插件列在「通知与集成」下,相关条目包括 dsh-lark(飞书机器人通道)和桌面通知类插件;选哪一个取决于要不要工作区、并行、守护这些额外能力,而不是目录页有没有「官方」标记。
使用前需要把权限边界看清楚。目录页写明:插件以当前 dsh 进程的权限运行,安装时可能执行代码,安装前应检查源代码仓库和许可证。package.json 声明的 workshop 权限包括文件读写、出站网络、本地监听、拉起进程、读写凭据,以及 harness 工具与事件。README 的「权限与数据」一节对应到:飞书 app_id / app_secret 明文写入本机 ~/.dsh-lark/config.json(文件权限 600);读写你用 /cd、/ws 指定的工作目录(含执行 shell、改文件);向飞书开放平台建 WebSocket、向 DeepSeek API 发送任务上下文。数据只在本机、飞书和 DeepSeek 之间流转,仓库称不收集遥测。
许可证是 AGPL-3.0,复制、修改或通过网络提供服务时要按该许可证履行源码义务,不能按「随手装一个 MIT 插件」来理解。兼容性钉在 dsh 0.1.0-rc.6 和 Node.js ≥ 22.19;平台为 Linux / macOS / Windows。已知限制包括:ACP 模式会话每次全新、无续跑;SDK 协议暂无 mid-turn cancel,/stop 会关闭对应 runtime 再重建;飞书文档评论和富文本回复仍是规划中能力,尚未实现。
仓库在 2026-08-17 的 README 里加了官方渠道声明:唯一官方仓库是 PlutoKeating/dsh-lark-bot,唯一官方 npm 包是 dsh-lark-bot(同源 dsh-feishu-bot,维护者 plutokeating)。项目从不提供 Windows .exe 或「下载后双击运行」的安装包。同日记载的假冒仓库 tarraencompassing61/dsh-lark-bot 以 exe 下载为诱饵,不要从这类页面取附件。
小结¶
dsh-lark-bot 把本机 DeepSeek Harness 接到飞书 / Lark:对话走流式卡片,项目用工作区和 git worktree 隔离,同一聊天可以并行多个任务,模型与密钥也能在对话里改。setup 默认带上的安全网守护,是在 dsh 挂掉之后仍能从飞书发 /safemode 自救的那一层。它是社区维护的 AGPL-3.0 插件,不是 DeepSeek 或飞书的官方产品;安装前读源码、核许可证、认准 PlutoKeating/dsh-lark-bot 这一处仓库即可。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-lark-bot/
GitHub:https://github.com/PlutoKeating/dsh-lark-bot