potterlee369-prog/dsh-feishu0

dsh-feishu

DSH host plugin: a Feishu (Lark) bot bridge — send @dsh messages from Feishu on your phone or PC, and the local DSH agent runs them and replies back to Feishu

包名
dsh-feishu
版本
0.1.0
最近更新
2026年8月19日

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

飞书后台要求(配置过一次即可)

  1. 飞书开放平台 → 自建应用 → 开通机器人能力(建议机器人名就叫 dsh,群聊里 @ 它)。
  2. 复制 App IDcli_...)与 App Secret
  3. 权限管理添加(以应用身份开通):
    • im:message.p2p_msg:readonly(读取用户发给机器人的单聊消息)——私聊必须
    • im:message.group_at_msg:readonly(读取群聊中 @ 机器人的消息)——群聊必须
    • im:message:send_as_bot(以机器人身份发消息)
    • 如果希望机器人读取群里所有消息(不 @ 也触发),再额外加 im:message.group_msg
  4. 事件与回调:
    • 订阅 接收消息 im.message.receive_v1
    • 订阅方式选 “使用长连接接收事件”
  5. 创建应用版本并发布(组织内可用即可,无需上架)。修改权限或事件后必须发新版,否则不会生效。

配置 App ID / App Secret(推荐:设置页面)

重启 dsh web 后打开 设置 → 飞书,在页面上填写:

  • App IDcli_...)与 App Secret
  • 触发词、工作目录等可选项;
  • 保存 —— 凭据变化会立即重连飞书长连接,无需再重启。

设置保存在本机 DSH 设置文档中(settings 服务),也可以在 cordis.patch.yml 里给 feishu 行写 appId/appSecret 作为底层默认值,页面保存的值会覆盖它:

- id: feishu
  name: dsh-feishu
  config:
    appId: ''                       # 可留空,在 设置 → 飞书 里填
    appSecret: ''
    trigger: '@dsh'
    cwd: E:\your\workspace          # DSH 会话工作目录(留空 = 宿主默认)

App ID / Secret 也可以用环境变量 DSH_FEISHU_APP_IDDSH_FEISHU_APP_SECRET;环境变量仅在配置值为空时兜底。

使用

场景操作
单聊机器人直接发消息即可(默认私聊免 @,例如发“帮我看看当前目录有哪些文件”)
群聊把机器人拉进群,发 @dsh 帮我写一个周报,只有 @ 它才触发
发图片(私聊)直接发图片,DSH 会调用本机 dsh-image-recognizer 识别后回复
发图片(群聊)在群里 @机器人 后发图片,机器人识别后回复
发文件(私聊)直接发送文件;文件会下载到 DSH 工作目录的 .feishu-inbox/,然后交给当前会话处理
发文件(群聊)在群里 @机器人 后发送文件;文件会下载到 .feishu-inbox/,然后交给当前会话处理
从 DSH 发文件回飞书发送 /send ,例如 /send reports/final.pdf;成功后只发送文件附件,不额外发送确认文本
私聊也要 @在设置页关闭“私聊免 @ 触发”,或把 p2pNoTrigger 配为 false
全部消息触发trigger 配成空字符串 ''

内置命令(私聊直接发命令,群聊前缀 @dsh ):

命令作用
/help显示帮助
/status桥接状态(长连接、工作目录、会话数)
/new/reset为当前飞书会话开启新的 DSH 会话,清空上下文
/send 将 DSH 工作目录内的普通文件上传并发送到当前飞书会话(也支持 /发送 ),成功后不发送文字确认

每个飞书会话(chat_id)对应一个独立的 DSH 会话,历史上下文会跨消息保留;同一会话内消息按到达顺序串行执行,不会互相打断。

配置项

默认说明
appId''飞书 App ID;空则读 DSH_FEISHU_APP_ID
appSecret''飞书 App Secret;空则读 DSH_FEISHU_APP_SECRET
trigger'@dsh'群聊(及关闭免 @ 时的私聊)触发前缀;'' = 每条文本消息都触发
p2pNoTriggertrue私聊免 @:单聊机器人直接发消息即触发
cwd''飞书消息创建的 DSH 会话工作目录;空 = 宿主默认
agentPreset''可选 agent preset id
acktrueDSH 执行前先回复“收到,DSH 处理中…”
replyChunkSize1800长回复按字符预算分段(段落边界处切开)
timeoutMs600000等 DSH 空闲的上限;超时回复“仍在处理中”