精选
为什么选中它
待人工精选——以下事实来自源码仓库。
它能做什么
Feishu (Lark) IM bridge for DeepSeek Harness (dsh) — a cordis plugin
适合谁
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
风险提示
- 未发现明显风险信号;安装前仍建议查看源码。
Feishu (Lark) IM bridge for DeepSeek Harness (dsh) — a cordis plugin
待人工精选——以下事实来自源码仓库。
Feishu (Lark) IM bridge for DeepSeek Harness (dsh) — a cordis plugin
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
dsh plugin --profile web add github:itr-del/dsh-feishu 作者没有声明支持的平台。
web > profile — installable via dsh plugin add. ┌────────┐ WS ┌──────────────┐ cordis ┌──────────┐ LLM ┌──────────┐ │ Feishu │ ──────> │ this plugin │ ──────────> │ dsh agent │ ────────> │ DeepSeek │ │ IM │ <────── │ │ <────────── │ │ <──────── │ │ └────────┘ API └──────────────┘ events └──────────┘ stream └──────────┘
## Features - One Feishu DM user ↔ one persistent dsh session (feishu:<open_id>). - Multi-turn conversations across reconnects. - Streams assistant replies back into Feishu, chunked at 4000 chars. - Filters DeepSeek <|DSML|...> tool-call markers from outbound text. - Pure ESM, no TypeScript compile step. - No telemetry, fully local. ## Installation ### 1. Install dsh bash npm install -g @deepseek-ai/dsh dsh web --help ### 2. Install the plugin bash dsh plugin add dsh-feishu This installs the plugin into ~/.dsh/profiles/web/node_modules/dsh-feishu and patches cordis.patch.yml automatically. ### 3. Configure your Feishu app Create a Custom App at https://open.feishu.cn/app and copy appId + appSecret. Under Event Subscriptions (事件与回调): - Set mode to Receive events via persistent connection (使用长连接接收事件/回调). - Add the event im.message.receive_v1. Under Permissions (权限), grant: - im:message - im:message.p2p_msg (required for DMs) Publish a version (发布版本) — without this the bot cannot receive events. Wait ~2 minutes after publishing. ### 4. Export env vars and run bash export DEEPSEEK_API_KEY="sk-..." export FEISHU_APP_ID="cli_..." export FEISHU_APP_SECRET="..." dsh web You should see in logs: [feishu] WebSocket started (appId=cli_xxx) [feishu] FeishuBridgeService initialized DM the bot anything — the agent will reply in the same conversation. ## Environment variables | Variable | Required | Default | Notes | |---|---|---|---| | DEEPSEEK_API_KEY | yes (LLM) | — | https://platform.deepseek.com | | DEEPSEEK_BASE_URL | no | https://api.deepseek.com | For proxies | | FEISHU_APP_ID | yes | — | cli_xxx from app console | | FEISHU_APP_SECRET | yes | — | From app console — never commit | ## How a message flows 1. User DMs the bot. 2. Feishu SDK fires im.message.receive_v1 → this plugin. 3. Plugin loads/creates the agent for feishu:<open_id>. 4. Plugin calls agent.followup(userMessage). 5. When agent returns to idle, plugin reads agent.session.events, strips DSML noise, and posts the reply via larkClient.im.message.create(...). ## Limitations - Text only. Image / file / card / post messages are not handled. - No streaming. Reply sent after turn completes. - No groups yet. DMs only. ## License MIT. ## Author itr-del — 13918029394@163.com Built while integrating dsh with a self-hosted Feishu bot on Ubuntu 22.04. 📖 Open-sourcing story: PUBLISHING.md — how this repo got published and listed. 中文文档见 README.zh.md。不看 Star,人工一条条挑的。
把 DSH 的 settings.yaml 做成可视化看板:所有已注册的 settings namespace——包括官方界面从未覆盖的第三方插件配置——都渲染成可编辑表单。项目还早,但方向很对:告别手改 YAML。
给 DSH 的 DIY 轨迹可视化:把 agent 的计划与执行画成图,不用翻原始日志也能看清它在干嘛。项目还早,但补上了「一眼看懂 agent 在做什么」这个真实缺口。
从 Claude Code / Codex 把活派给 DSH:在宿主内拉起带分级预设的 DSH agent 会话,看原生子代理进度,还能借它的多模态桥给纯文本的 DSH 补上视觉和生图。编排型插件,把 DSH 变成其他编码 agent 的后端。