前言¶
在 DSH 里做一个智能体时,常见需求是:会话已经建好,但希望临时在飞书里发消息、看结果,而不是只盯着 Web 界面。如果飞书机器人需要公网回调,接入成本会更高。dsh-fschannel 选择使用飞书官方 @larksuite/channel SDK 的 WebSocket 长连接,无需公网回调地址,直接桥接 DSH Web 会话和飞书/Lark 聊天。
这是什么¶
dsh-fschannel 是一个 DeepSeek Harness(DSH)插件。它把 DSH Web 会话绑定到飞书/Lark 聊天后,飞书消息会进入该 DSH 会话并由 Agent 处理,处理结果自动发回飞书。
仓库用户名为 cershuang,源码仓库为:
https://github.com/cershuang/dsh-fschannel
许可证为 MIT。DSH 的扩展方式是「一切皆插件」;社区目录属于独立站点,与 DeepSeek / 幻方无官方从属关系,本文不按官方应用商店口径描述。
核心能力¶
会话与飞书聊天绑定¶
插件支持将 DSH Web 会话与飞书聊天做一对一绑定,绑定关系持久化到:
$DSH_HOME/feishu-bindings.json
会话进入待绑定状态后,下一条飞书消息所在的聊天会完成绑定。这样可以在 Web 中先建会话,再到飞书私聊或群里完成关联。
消息通道¶
插件使用 @larksuite/channel SDK 建立 WebSocket 长连接,无需配置公网回调地址。群聊中默认仅响应 @ 机器人;单成员群可以免 @。未绑定聊天收到消息时,插件可按配置返回引导提示。
消息投递层面,插件提供 SDK 级去重(30s),并按聊天串行投递。当 Agent 正在处理时,飞书侧会提示当前消息的排队位置。
收到消息时,插件可以自动添加表情反馈;是否开启以及不同阶段使用什么表情可以配置。
流式输出与卡片¶
插件支持流式卡片输出:回合开始时开卡,回复逐字呈现,回合结束后保留最终结果。输出内容支持 markdown 表格、代码块和图片内嵌。
若飞书侧没有卡片权限,插件会回退为普通消息;也可以设置:
output: 'plain'
让每一步都发送一条普通消息。
图片处理与发送¶
飞书发来的图片会先暂存,不立即处理;当下一条文字消息到达时,插件会把图片路径交给 Agent,由视觉识别能力结合文字消息处理。该能力需要 @anionex/dsh-vision-toolkit 就绪,并且需要 runtime 就绪。
插件还提供会话图片画廊,并对历史 feishu/image 日志做自动修复。
Agent 在回合中也可以把结果发回飞书:
- 调用
send_feishu_image发送图片,支持 PNG/JPEG/WebP/GIF,且图片路径须在会话工作区内。 - 调用
send_feishu_file发送文件,大小限制为 ≤30 MiB。
飞书侧命令¶
插件在飞书侧提供模型与 effort 控制入口。发送「调整模型」「切换模型」「把 effort 调一下」等短语,会弹出模型与 effort 按钮卡片。
也可以直接使用命令:
/model
/model list
/model use <provider>/<model>
/model effort <off|high|max>
/status
/stop
/help
其中 /model、/model list、/model use、/model effort 用于查询或切换模型与思考强度;/status、/stop、/help 用于查看状态、停止当前回合和查看命令。
安装与启用¶
前置要求:
Node 22.19+
dsh CLI
pnpm
凭据推荐保存在 DSH 凭据库:
$DSH_HOME/.credentials.yaml
.env 文件只放路径配置。
按 README 安装时,通常按下面顺序执行:
cp example.env .env
npm install && npm run build
dsh plugin --profile web add file:<插件仓库路径>
dsh web
这里先复制示例环境文件,再构建客户端包,然后以 file: 方式安装到 web profile,最后启动 dsh web 生效。安装命令中的 <插件仓库路径> 是本机插件仓库路径,不要按 owner/repo 名称自行拼接远程安装命令。
如果 pnpm 因 protobufjs 构建脚本报:
ERR_PNPM_IGNORED_BUILDS
需要在 profile 的 pnpm-workspace.yaml 中加入:
allowBuilds:
protobufjs: false
修改插件源码后,需要重新构建并重装:
npm run build
dsh plugin --profile web add file:<插件仓库路径>
dsh web
典型用法¶
1、在 Web 界面新建会话后,点击会话头「连接飞书」,让会话进入待绑定状态。
2、在飞书私聊机器人,或在群里 @ 机器人发送一条消息,完成该聊天与当前 DSH 会话的绑定。
3、之后在飞书里继续发消息,消息会进入该 DSH 会话;Agent 的回复会自动发回飞书聊天。
4、如果需要让新会话默认进入待绑定,可打开「设置 → 飞书机器人」标签页中的「新会话默认连接飞书」,或点击「新建会话并连接飞书」。
适用场景与注意¶
适合这类插件的场景是:你已经在用 DSH Web 会话,同时希望把同一个会话接入飞书/Lark,用于移动端、群聊或日常协作入口;也希望 Agent 能向飞书发送图片、文件,并使用模型切换、停止、状态查看等命令。
使用前建议检查以下事项:
- 插件会作为 DSH 插件运行,并以当前 dsh 进程权限读取本地路径与文件。安装前应自行检查源码与许可证。
- 许可证为 MIT。
- 凭据推荐保存在
$DSH_HOME/.credentials.yaml,.env只放路径配置。 - HTTP API
/feishu/*仅接受127.0.0.1访问。 - 流式卡片依赖飞书卡片能力;无卡片权限时会自动回退普通消息。
- 图片暂存识别依赖
@anionex/dsh-vision-toolkit且 runtime 就绪。 send_feishu_image支持 PNG/JPEG/WebP/GIF,且路径须在会话工作区内;send_feishu_file限制 ≤30 MiB。- 群聊默认仅响应 @ 机器人;单成员群免 @。
- dsh 升级后,插件本体、注册行、绑定数据保留,无需重打补丁。
链接¶
源码仓库:
https://github.com/cershuang/dsh-fschannel
社区目录线索:
https://www.skillhub.cn/plugins/cershuang/dsh-fschannel
该目录链接来自线索,未在本次资料中核实;如需以源码为准,优先使用仓库地址。