← 返回列表
未验证
DSH 生态系统的一部分——基于 DeepSeek Harness DSH 插件架构构建的渠道插件。
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/19 · 已提供中文文档
DSH ecosystem channel plugin: Feishu (Lark) for DeepSeek Harness — resident Agents per chat, events + relay transports, media exchange. 基于 DSH 生态构建的飞书插件
综合分
26.8
GitHub 分
26.8
用户评分
—
★ Stars
0
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/canadaeee/dsh-feishu.git数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-feishu
DSH 生态系统的一部分——基于 DeepSeek Harness (DSH) 插件架构构建的渠道插件。
用于 DeepSeek Harness (DSH) 的飞书(Lark)即时通讯渠道桥接——将 dsh 变成一个飞书机器人,每个聊天一个长期存活的 Agent(真正的滚动记忆,并刷写到磁盘)。
功能
- events 模式(默认):通过同一台机器上的 lark-cli 直接消费 im.message.receive_v1。要求本机拥有该应用的唯一全局事件总线连接,并且 lark-cli 已以机器人身份认证(lark-cli auth login)。
- relay 模式:长轮询一个公共 HTTP 任务中继,因此 DSH 机器可以位于 NAT 之后。飞书侧机器人(例如 OpenClaw/Clawdbot agent,或任何 webhook 转发器)将用户任务 POST 到中继;此桥接认领任务,用宿主机的默认模型作答,并将回复 POST 回去。双方均仅出站连接。
两种模式共享同一核心:每聊天常驻 Agent、每聊天串行轮次、事件去重、指数退避自愈、群聊 @ 提及门控(events 模式),以及回复长度上限。
安装
1. 将 bundle 放到 DSH 能解析到的位置,例如放入运行时:
cp -R dsh-feishu ~/.dsh/runtime/node_modules/dsh-feishu
(树外:任何 profile 都会从 dsh 安装锚点解析 bundle,
或通过 ~/.dsh/profiles/node_modules/ 符号链接暴露它)
2. 创建 profile ~/.dsh/profiles/feishu/package.json:
{
"name": "dsh-profile-feishu",
"private": true,
"dependencies": {},
"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "dsh-feishu"] } }
}
外加空的 cordis.yml([])和 pnpm-workspace.yaml。
3. 将你的部署配置(见下文)添加到
~/.dsh/profiles/feishu/cordis.patch.yml
4. 启动:
dsh --profile feishu
配置(你的 profile 的 cordis.patch.yml)
bundle 本身与环境无关——所有部署值都位于
你的 profile 的用户补丁层中:
- id: feishu-bridge
config:
mode: events # 或:relay
--- relay 模式 ---
relayBaseUrl: 'https:///openapi/relay'
relayApiKeyEnv: DSH_FEISHU_RELAY_KEY # 启动时从此环境变量读取密钥
--- 共享 ---
workspace: ~/.dsh/feishu-channel/workspace
mentionOnlyInGroups: true
minBackoffSeconds: 5
maxBackoffSeconds: 120
maxReplyChars: 3800
中继 API 密钥绝不存储在配置文件中——在启动前导出它:
export DSH_FEISHU_RELAY_KEY=... # 然后:dsh --profile feishu
中继服务器契约
relay 模式需要一个实现五个路由的公共 HTTP 端点
(作为 Miaoda/Feishu 妙搭 full_stack NestJS 应用的参考实现很容易
组装;在网关处通过 Authorization: Bearer 进行认证):
| 路由 | 调用方 | 用途 |
|---|---|---|
| POST /ask {chat_key, text, wait_seconds} | 飞书侧机器人 | 提交任务,长轮询获取回复 |
| GET /poll?wait=25 | 本桥接服务 | 领取待处理任务 |
| POST /reply {job_id, reply} | 本桥接服务 | 返回 Agent 的答案 |
| GET /result/{job_id} | 飞书侧机器人 | 在 ask 超时后重新查询 |
| GET /health | 任何人 | 存活检查 |
事件模式前提条件
1. 一个具备机器人能力的飞书自定义应用;订阅事件
im.message.receive_v1;授予 im:message.p2p_msg:readonly(以及机器人的发送权限范围)。
2. 已安装并认证 lark-cli(lark-cli auth login,机器人身份已就绪)。
3. 每个应用全局只能有一个事件总线连接——请先停止任何竞争
消费者(例如使用同一应用的云端 OpenClaw 实例)。
媒体(v0.2,事件模式)
- 入站的图片/语音/视频/文件消息会被下载(通过
lark-cli im +messages-mget --download-resources)到
/media/,并告知 Agent 本地路径。
- 出站时,Agent 发出 [[fsfile:/absolute/path]] 标记;桥接服务
将图片作为图片消息路由,其他一切作为文件附件路由。
- 中继模式在 v0.2 中保持纯文本(如果你需要在中继中支持
媒体,请扩展中继任务 schema)。
行为说明
- 每个 chat_id(事件模式)/ chat_key(中继模式)对应一个 Agent,在
首条消息时惰性创建,内存在进程生命周期内保留;会话持久化到
DSH 会话存储(~/.dsh/sessions)。
- 群聊仅在消息 @ 提及机器人时才会回复
(设置 mentionOnlyInGroups: false 可回复所有消息)。
- 模型:使用宿主机的默认模型选择
(~/.dsh/settings.yaml 中的 agent-default-model)。
许可证:MIT 风格,随你怎么用;无任何担保。同作者(canadaeee)的其他插件
扫码进群