tkwkeven/dsh-lark-all0

dsh-lark-all

Merged Feishu/Lark plugin for DeepSeek Harness: Lark channel bridge (long-connection WebSocket, parallel task sessions with streaming cards, media in/out, cloud docs) + restart recovery notification (ops).

包名
dsh-lark-all
版本
1.0.0
许可证
MIT
最近更新
2026年8月18日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:tkwkeven/dsh-lark-all

飞书开放平台配置

  1. 飞书开放平台创建企业自建应用,启用「机器人」能力。
  2. 添加权限:
    • 必选:im:message.p2p_msg:readonlyim:message.group_at_msg:readonlyim:message:send_as_botim:resource
    • 「进行中表情」:im:message.reactions:write_only
    • 可选:docx:document(云文档收发)、drive:drive(大文件上传云空间)
  3. 在「事件与回调」选择**「使用长连接接收事件」**,订阅 im.message.receive_v1(接收消息)。
  4. 创建并发布应用版本,把机器人加入需要使用的聊天。
  5. 配置凭据(二选一):

## DSH 配置

插件包自带 `cordis.patch.yml`,安装后自动插入两行:

```yaml
- insert:
    - id: lark-channel
      name: dsh-lark-all
      config:
        appId: !!js process.env.LARK_APP_ID
        appSecretRef: LARK_APP_SECRET
        cwd: !!js process.env.DSH_LARK_CWD ?? process.cwd()
        responseTimeoutMs: 21600000
    - id: dsh-ops
      name: dsh-lark-all/ops
      config:
        appId: !!js process.env.LARK_APP_ID
        appSecretRef: LARK_APP_SECRET
        cwd: !!js process.env.DSH_LARK_CWD ?? process.cwd()

在 profile 自己的 cordis.patch.yml(最后应用的一层)中覆盖配置:

- id: lark-channel
  config:
    appId: cli_your-app-id        # 建议保留环境变量方式
    singlePolicy: allowlist
    singleAllowFrom: [ou_xxx]
    groupPolicy: allowlist
    groupAllowChats: [oc_xxx]
    taskReasoningEffort: max      # 任务会话固定的推理强度
    restartExitDelayMs: 2000      # 重启时退出延迟(配合 relaunch helper)

完整配置项

访问策略与输入

配置默认说明
domainfeishufeishu(中国版)或 lark(国际版)
singlePolicy / groupPolicyopenopen / allowlist / disabled
singleAllowFrom / groupAllowChats[]白名单(ou_* / oc_*
groupRequireMentiontrue群聊要求 @机器人
respondToMentionAllfalse响应 @所有人
imageInputModeautoauto / always / never
replyInThreadfalse回复是否进话题

超时与回复

配置默认说明
responseTimeoutMs300000单轮回复上限(合并版默认 6 小时)
mediaDownloadTimeoutMs30000媒体下载超时
sendTimeoutMs30000发送超时
sendRetries2发送重试次数
maxReplyChars20000单条回复上限
maxReplyImages4单条回复图片上限

入站媒体

配置默认说明
inboundFilestrue接收文件到 inbox
inboundMediatrue接收语音/视频到 inbox
inboundDir''自定义 inbox 目录(空用 /.lark-inbox
inboundResourceLimitBytes104857600入站资源上限(飞书 100MB)
inboundTextPreviewChars6000文本类文件预览长度

出站媒体

配置默认说明
outboundMediatrue出站媒体总开关(命令 + 标记)
outboundAllowedDirs[]允许的出站本地目录(空默认 [cwd]
maxOutboundFileBytes31457280文件上限(30MB)
maxOutboundAudioBytes31457280语音上限
maxOutboundVideoBytes31457280视频上限
maxOutboundImageBytes10485760图片上限(10MB)
driveLargeFilesfalse超限文件改传云空间并回复链接
maxDriveFileBytes209715200云空间上传上限(200MB)
sendFileMarkerstrue解析模型回复 [lark-*: 路径] 标记
docxInboundtrue读取 docx 分享内容
docxOutboundtrue允许 /bot-send-doc[lark-doc:]

任务会话

配置默认说明
taskSessionstrue任务会话总开关
taskPresets{}额外前缀 → agent preset 映射
taskDefaultPresetcode任务: 前缀使用的 preset
taskReasoningEffortmax新建任务会话固定的推理强度(模型不支持时会按路由自动收敛)
reportIdentitywdsh任务报告前缀中的身份标识
taskCounterFile''每日任务计数器路径
chatQueuefalse关闭(默认)→ 任务并行;true → 同聊天严格串行

重启

配置默认说明
restartCommand重启进程主聊天中触发的重启命令
restartMarkerFile''重启标记路径(ops 消费)
restartLaunchdsh web重启后启动的命令行
restartLogFile''重启后进程日志
restartExitDelayMs4000调度重启后退出延迟

其他

配置默认说明
progressReactiontrue收到消息先添加进行中表情
progressEmojiTyping进行中表情(Typing/THUMBSUP/THINKING/GLANCE/Fire…)
doneEmoji''完成表情(如 CheckMark;空 = 关闭)
maxInFlightMessages8并行处理上限
systemPrompt内置通道系统提示词覆盖

完整配置项

访问策略与输入

配置默认说明
domainfeishufeishu(中国版)或 lark(国际版)
singlePolicy / groupPolicyopenopen / allowlist / disabled
singleAllowFrom / groupAllowChats[]白名单(ou_* / oc_*
groupRequireMentiontrue群聊要求 @机器人
respondToMentionAllfalse响应 @所有人
imageInputModeautoauto / always / never
replyInThreadfalse回复是否进话题

超时与回复

配置默认说明
responseTimeoutMs300000单轮回复上限(合并版默认 6 小时)
mediaDownloadTimeoutMs30000媒体下载超时
sendTimeoutMs30000发送超时
sendRetries2发送重试次数
maxReplyChars20000单条回复上限
maxReplyImages4单条回复图片上限

入站媒体

配置默认说明
inboundFilestrue接收文件到 inbox
inboundMediatrue接收语音/视频到 inbox
inboundDir''自定义 inbox 目录(空用 /.lark-inbox
inboundResourceLimitBytes104857600入站资源上限(飞书 100MB)
inboundTextPreviewChars6000文本类文件预览长度

出站媒体

配置默认说明
outboundMediatrue出站媒体总开关(命令 + 标记)
outboundAllowedDirs[]允许的出站本地目录(空默认 [cwd]
maxOutboundFileBytes31457280文件上限(30MB)
maxOutboundAudioBytes31457280语音上限
maxOutboundVideoBytes31457280视频上限
maxOutboundImageBytes10485760图片上限(10MB)
driveLargeFilesfalse超限文件改传云空间并回复链接
maxDriveFileBytes209715200云空间上传上限(200MB)
sendFileMarkerstrue解析模型回复 [lark-*: 路径] 标记
docxInboundtrue读取 docx 分享内容
docxOutboundtrue允许 /bot-send-doc[lark-doc:]

任务会话

配置默认说明
taskSessionstrue任务会话总开关
taskPresets{}额外前缀 → agent preset 映射
taskDefaultPresetcode任务: 前缀使用的 preset
taskReasoningEffortmax新建任务会话固定的推理强度(模型不支持时会按路由自动收敛)
reportIdentitywdsh任务报告前缀中的身份标识
taskCounterFile''每日任务计数器路径
chatQueuefalse关闭(默认)→ 任务并行;true → 同聊天严格串行

重启

配置默认说明
restartCommand重启进程主聊天中触发的重启命令
restartMarkerFile''重启标记路径(ops 消费)
restartLaunchdsh web重启后启动的命令行
restartLogFile''重启后进程日志
restartExitDelayMs4000调度重启后退出延迟

其他

配置默认说明
progressReactiontrue收到消息先添加进行中表情
progressEmojiTyping进行中表情(Typing/THUMBSUP/THINKING/GLANCE/Fire…)
doneEmoji''完成表情(如 CheckMark;空 = 关闭)
maxInFlightMessages8并行处理上限
systemPrompt内置通道系统提示词覆盖

使用方法

1. 基础命令(发给机器人)

命令说明
/bot-ping连通性检查,返回 pong
/bot-help查看命令帮助
/bot-image-test发送蓝色测试图片,检查图片链路
/bot-status查看连接状态
/bot-cancel取消当前生成

2. 普通聊天

直接发文字、图片、文件、语音、视频或云文档分享即可。普通消息进入该聊天的常驻 Harness 会话,与 Web 端同一套模型配置。

3. 并行任务会话

任务:帮我调研一下开源社区的 Cordis 插件生态
ptc任务:写一个 PowerShell 脚本批量重命名文件
标准任务:总结这篇文档的要点
极简任务:翻译这段话
创造任务:设计一个产品原型方案
  • 每条任务消息创建独立会话并在话题中运行,带实时流式卡片
  • 任务还在运行时,继续发 任务:… 即可并行处理
  • 在任务消息的话题(或回复任务消息的回复链)里继续发消息 = 继续该任务会话,每轮一张新的「第 N 轮」卡片
  • 任务完成后,报告以回复形式投递到话题内;超长报告自动分页

4. 发送媒体

/bot-send-file C:\path\to\demo.txt
/bot-send-image C:\path\to\photo.png
/bot-send-voice C:\path\to\audio.opus
/bot-send-video C:\path\to\clip.mp4
/bot-send-doc C:\path\to\report.md

也可以让模型在回复中直接输出标记(独立一行):

[lark-file: C:\path\to\demo.txt]
[lark-image: C:\path\to\photo.png]
[lark-doc: C:\path\to\report.md]

超过 IM 上限的文件在开启 driveLargeFiles 后自动上传云空间并回复分享链接。

5. 接收媒体

  • 文件:下载到 /.lark-inbox/-/,文本类文件附带内容预览,可直接问文件内容相关问题
  • 语音/视频:下载到 inbox 并告知时长与路径
  • 原图:超过附件限制的图片自动降级为 inbox 文件并告知路径
  • 云文档:docx 分享自动读取正文;sheet/bitable 识别名称与链接

6. 重启进程

在主聊天发送 重启进程(可配置 restartCommand)。机器人回复确认后调度安全重启,约 10~60 秒后恢复;dsh-ops 会向该聊天发送恢复通知。

7. 验证链路

/bot-ping        → pong
/bot-image-test  → 文字 + 蓝色图片

再发普通文字和一张图片验证模型与入站附件链路;发 demo.txt/bot-send-file C:\绝对\路径\demo.txt 验证文件出站;向机器人发送一个文件或语音验证入站下载。