🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

聊天智能体桥 temotee2103/dsh-overdrive

DeepSeek Harness
temotee210359 天前有提交已提供中文文档扫描:含敏感能力

把 DSH 接入各大聊天平台,随时指挥并查看思考轨迹

30.1/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add temotee2103/dsh-overdrive
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · platform
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 59 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-overdrive(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 14:41:55

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 49 处,展示前 45 条)
  • 发起网络请求
    packages/gateway/src/asr.ts:55
    const audioRes = await fetch(voice.url);
  • 发起网络请求
    packages/gateway/src/asr.ts:64
    const res = await fetch(`${baseUrl}/audio/transcriptions`, {
  • 读取本地文件
    packages/gateway/src/feed.ts:75
    if (file && existsSync(file)) {
  • 读取本地文件
    packages/gateway/src/feed.ts:77
    const parsed = JSON.parse(readFileSync(file, 'utf8')) as Feed[];
  • 写入本地文件
    packages/gateway/src/feed.ts:88
    mkdirSync(dirname(this.file), { recursive: true });
  • 写入本地文件
    packages/gateway/src/feed.ts:89
    writeFileSync(this.file, JSON.stringify(this.feeds, null, 2), 'utf8');
  • 读取本地文件
    packages/gateway/src/index.ts:222
    if (!existsSync(path)) {
  • 写入本地文件
    packages/gateway/src/index.ts:422
    writeFileSync(tmp, Buffer.from(ev.data, 'base64'));
  • 删除本地文件
    packages/gateway/src/index.ts:432
    .finally(() => rmSync(tmp, { force: true }));
  • 读取密钥环境变量
    packages/gateway/src/index.ts:459
    const dshToken = process.env.DSH_OVERDRIVE_TOKEN ?? process.env.DSH_TOKEN ?? 'dev-token';
  • 读取本地文件
    packages/gateway/src/memory.ts:80
    if (file && existsSync(file)) {
  • 读取本地文件
    packages/gateway/src/memory.ts:82
    const parsed = JSON.parse(readFileSync(file, 'utf8')) as Record<string, MemoryEntry[]>;
  • 写入本地文件
    packages/gateway/src/memory.ts:95
    mkdirSync(dirname(this.file), { recursive: true });
  • 写入本地文件
    packages/gateway/src/memory.ts:96
    writeFileSync(this.file, JSON.stringify(Object.fromEntries(this.data), null, 2), 'utf8');
  • 读取本地文件
    packages/gateway/src/memory.ts:142
    if (file && existsSync(file)) {
  • 读取本地文件
    packages/gateway/src/memory.ts:144
    const parsed = JSON.parse(readFileSync(file, 'utf8')) as Record<string, string>;
  • 写入本地文件
    packages/gateway/src/memory.ts:155
    mkdirSync(dirname(this.file), { recursive: true });
  • 写入本地文件
    packages/gateway/src/memory.ts:156
    writeFileSync(this.file, JSON.stringify(Object.fromEntries(this.map), null, 2), 'utf8');
  • 请求外部主机api.deepseek.com
    packages/gateway/src/setup.ts:82
    const r = await fetch('https://api.deepseek.com/user/balance', { headers: { authorization: `Bearer ${v.DEEPSEEK_API_KEY}` } });
  • 发起网络请求
    packages/gateway/src/setup.ts:82
    const r = await fetch('https://api.deepseek.com/user/balance', { headers: { authorization: `Bearer ${v.DEEPSEEK_API_KEY}` } });
  • 请求外部主机api.telegram.org
    packages/gateway/src/setup.ts:86
    const r = await fetch(`https://api.telegram.org/bot${v.TELEGRAM_BOT_TOKEN}/getMe`);
  • 发起网络请求
    packages/gateway/src/setup.ts:86
    const r = await fetch(`https://api.telegram.org/bot${v.TELEGRAM_BOT_TOKEN}/getMe`);
  • 请求外部主机discord.com
    packages/gateway/src/setup.ts:91
    const r = await fetch('https://discord.com/api/v10/users/@me', { headers: { authorization: `Bot ${v.DISCORD_BOT_TOKEN}` } });
  • 发起网络请求
    packages/gateway/src/setup.ts:91
    const r = await fetch('https://discord.com/api/v10/users/@me', { headers: { authorization: `Bot ${v.DISCORD_BOT_TOKEN}` } });
  • 请求外部主机slack.com
    packages/gateway/src/setup.ts:95
    const r = await fetch('https://slack.com/api/auth.test', { headers: { authorization: `Bearer ${v.SLACK_BOT_TOKEN}` } });
  • 发起网络请求
    packages/gateway/src/setup.ts:95
    const r = await fetch('https://slack.com/api/auth.test', { headers: { authorization: `Bearer ${v.SLACK_BOT_TOKEN}` } });
  • 请求外部主机open.feishu.cn
    packages/gateway/src/setup.ts:100
    const r = await fetch('https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal', {
  • 发起网络请求
    packages/gateway/src/setup.ts:100
    const r = await fetch('https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal', {
  • 请求外部主机api.dingtalk.com
    packages/gateway/src/setup.ts:108
    const r = await fetch('https://api.dingtalk.com/v1.0/oauth2/accessToken', {
  • 发起网络请求
    packages/gateway/src/setup.ts:108
    const r = await fetch('https://api.dingtalk.com/v1.0/oauth2/accessToken', {
  • 读取本地文件
    packages/gateway/src/setup.ts:233
    const current = existsSync(envPath) ? readFileSync(envPath, 'utf8') : '';
  • 读取本地文件
    packages/gateway/src/setup.ts:233
    const current = existsSync(envPath) ? readFileSync(envPath, 'utf8') : '';
  • 写入本地文件
    packages/gateway/src/setup.ts:235
    writeFileSync(envPath, merged, 'utf8');
  • 读取本地文件
    packages/gateway/src/status.ts:44
    const html = await readFile(
  • 读取本地文件
    packages/gateway-core/src/autosend.ts:37
    entries = readdirSync(dir);
  • 读取本地文件
    packages/gateway-core/src/autosend.ts:46
    st = statSync(full);
  • 读取本地文件
    packages/gateway-core/src/bridge.ts:100
    const data = readFileSync(found.path).toString('base64');
  • 发起网络请求
    packages/gateway-core/src/dsh-runtime.ts:191
    const res = await fetch(url);
  • 读取密钥环境变量
    packages/gateway-core/src/index.ts:167
    const token = rawConfig.token ?? process.env.DSH_OVERDRIVE_TOKEN;
  • 发起网络请求
    packages/sdk/src/client.ts:16
    const res = await fetch(`${this.baseUrl}${path}`, {
  • 发起网络请求
    packages/sdk/src/client.ts:30
    return this.request('GET', '/v1/health');
  • 发起网络请求
    packages/sdk/src/client.ts:34
    return this.request('POST', '/v1/sessions', req);
  • 发起网络请求
    packages/sdk/src/client.ts:38
    return this.request('POST', `/v1/sessions/${encodeURIComponent(sessionId)}/messages`, req);
  • 发起网络请求
    packages/sdk/src/client.ts:43
    return this.request('POST', `/v1/approvals/${encodeURIComponent(reqId)}/resolve`, body);
  • 发起网络请求
    packages/sdk/src/client.ts:47
    return this.request('POST', '/v1/tasks', req);
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
涉及外部主机:api.deepseek.com、api.telegram.org、discord.com、slack.com、open.feishu.cn 等 6 个

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 接入多平台聊天
  • 会话内轨迹追踪
  • 子代理与定时任务

DeepSeek Harness 的 OpenClaw——把 DSH 变成多平台聊天智能体,支持会话内轨迹追踪、子代理与定时任务,一条命令即可部署。

README

由 DeepSeek 最新模型翻译生成
⚡ dsh-overdrive DSH 界的 OpenClaw:把 DeepSeek Harness 变成"看得见思考过程、可以随时指挥"的聊天智能体。 dsh-overdrive 是 Hermes Agent / OpenClaw 的多平台平替,但基于 DeepSeek Harness —— 桥接进 WhatsApp · Telegram · Discord · Slack · 飞书 · 钉钉 · 企业微信 —— 做到了它们做不到的事:每一步思考和工具调用都在聊天里可见,危险操作永远等你点头。 MIT License CI DSH npm Platforms Listed in awesome-dsh-plugin 为什么不用 OpenClaw? Hermes / OpenClaw 是"终端智能体 + 20 多个聊天频道",但它是黑盒——你只看到答案,看不到过程。 DSH 的 append-only session log 是它们抄不走的。dsh-overdrive 把这份能力变成聊天原生的体验: - 🧠 看得见思考 —— /trace 把 agent 的推理与工具调用轨迹回放成摘要卡片,就在聊天里 - 🤖 指挥一个团队 —— /task 派发并行子任务,/cron 0 9 * * * …
展开完整文档(README 剩余 1 节)
⚡ dsh-overdrive

DSH 界的 OpenClaw:把 DeepSeek Harness 变成"看得见思考过程、可以随时指挥"的聊天智能体。

dsh-overdrive 是 Hermes Agent / OpenClaw 的多平台平替,但基于 DeepSeek Harness —— 桥接进 WhatsApp · Telegram · Discord · Slack · 飞书 · 钉钉 · 企业微信 —— 做到了它们做不到的事:每一步思考和工具调用都在聊天里可见,危险操作永远等你点头。

MIT License
CI
DSH
npm
Platforms
Listed in awesome-dsh-plugin

为什么不用 OpenClaw?

Hermes / OpenClaw 是"终端智能体 + 20 多个聊天频道",但它是黑盒——你只看到答案,看不到过程。

DSH 的 append-only session log 是它们抄不走的。dsh-overdrive 把这份能力变成聊天原生的体验:

- 🧠 看得见思考 —— /trace 把 agent 的推理与工具调用轨迹回放成摘要卡片,就在聊天里
- 🤖 指挥一个团队 —— /task 派发并行子任务,/cron 0 9 * * * … 用自带调度器安排定时任务
- 🔒 危险操作你说了算 —— 危险工具调用会暂停,直到你点 ✅ 同意 / 🚫 拒绝(Telegram / Discord / Slack / WhatsApp 原生按钮)
- 🚀 一条命令部署 —— docker compose up,扫码即用。多数平台无需公网 URL。

效果长这样

纯文本版

你: 帮我看看这个项目有多少个包 Agent: 📋 轨迹(2 步) 🧠 分析消息 🛠️ mock.tool: echo ✅ Mock agent received: 帮我看看这个项目有多少个包

你: /task 写一句营销口号 Agent: 🤖 子任务已派出 ✅ 任务完成 5c399346…

你: /cron 0 9 * * * 每天给我一条技术新闻 Agent: ⏰ 定时任务已注册

你: dangerous rm -rf / Agent: ⚠️ 需要批准:执行危险操作(120s 内有效) [✅ 同意] [🚫 拒绝] ← 点一下,agent 继续或停止

🎬 完整演示剧本 → docs/demo.md(中英双语)

按 docs/demo.md 的 3 分钟剧本录制:普通对话 → /trace 轨迹回放 → /task 子任务 → /cron 定时任务 → 审批按钮 → 收尾。

支持的平台

| 平台 | 接入方式 | 状态 |
| Telegram | Bot API(长轮询) | ✅ 真机验证通过(2026-08-16) |
| WhatsApp | Baileys + 扫码配对,原生交互按钮 | ✅ |
| Discord | Bot token,原生按钮 | ✅ |
| Slack | Socket Mode(免公网 URL) | ✅ |
| 飞书 | 官方 SDK,长连接 | ✅ |
| 钉钉 | Stream 模式(WebSocket,免公网 URL) | ✅ |
| 企业微信 | 回调 API(AES 加解密) | ✅ |
| CLI | stdin/stdout(开发与 E2E) | ✅ |

快速开始

Docker 一条命令(推荐):

git clone https://github.com/temotee2103/dsh-overdrive && cd dsh-overdrive
cp deploy/.env.example .env # 填 DEEPSEEK_API_KEY + TELEGRAM_BOT_TOKEN
docker compose -f deploy/docker-compose.yml up -d --build
控制台 http://localhost:3190/ DSH Web UI http://localhost:3080/

已有 DSH?一行装完:

npx dsh-overdrive-setup # 引导向导:API key + 平台凭据(实时验证)
dsh plugin --profile web add @dsh-overdrive/gateway-core # 装插件
npx dsh-overdrive-gateway # 起 gateway

gateway-core 的 token 配置:
- 图形界面(推荐给非技术用户):装好插件后,在 DSH Web 设置 → Plugins → overdrive 里填 Telegram Bot Token(保存后重启 dsh web 生效)。
- 进程内原生模式:设置 DSH_TELEGRAM_TOKEN=(@BotFather 创建)后重启 dsh web,直接在 DSH 里聊 Telegram。
- 旧外部 gateway 模式:设置 DSH_OVERDRIVE_TOKEN=(DSH 与 gateway 进程共用);或
- 在 profile 的 cordis.patch.yml 覆盖:- update: [{ id: overdrive-gateway-core, config: { token: } }]
- 未配置任何 token 时插件以禁用态加载(打印告警、桥接不启动),不会阻塞 dsh 启动,可随时补配后重启。

给 bot 发第一条消息后,输入 /help 查看全部命令。完整方案见 docs/quickstart.md

不会写代码?这样上手

不需要会编程。dsh-overdrive 的设计是:一个人装好,全家都能用。

1. 找一位懂行的朋友,花 10 分钟
2. 把下面这条发给他:

macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/temotee2103/dsh-overdrive/main/install.sh | bash

Windows: 下载 install.ps1,右键 → "使用 PowerShell 运行"(或双击)

3. 安装器只问你 3 个问题(API key → 平台 → bot token),然后自动全部搞定
4. 之后你只需要聊天:发消息、/help 看命令、危险操作点 ✅ 同意 / 🚫 拒绝

English: No coding needed — have a friend run the 10-minute installer once; afterwards you just chat.

聊天命令

| 命令 | 作用 |
| /help | 命令列表 |
| /trace | 回放最近一轮轨迹(思考 + 工具调用) |
| /task | 派发子任务 |
| /cron | 定时任务(自带 5 字段调度器) |
| /crons | 查看已注册的定时任务列表(含下次触发时间) |
| /cronrm | 删除定时任务 |
| /remind in 10 分钟 | 一次性定时提醒(也支持 at HH:MM) |
| /remember | 记住关于你的事(长期记忆) |
| /recall | 回忆相关记忆 |
| /forget | 删除一条记忆 |
| /send | 把本地文件/图片发到当前聊天 |
| /status | 查看适配器/记忆/定时任务状态 |
| /digest · /digest daily 09:00 | 即时或定时每日摘要 |
| /feed add · /feed list · /feed rm | RSS 订阅推送到聊天 |
| /agents | 子任务状态(简化) |
| /new | 重置会话 |

agent 产出的文件(图片/文档)会在每轮 turn 结束后自动发送回聊天(扫描 agent 工作目录,经协议 base64 传输)。

架构

flowchart LR
subgraph PLAT["你的聊天软件"]
WA[WhatsApp] & TG[Telegram] & DC[Discord] & SL[Slack]
FS[飞书] & DT[钉钉] & WM[企业微信]
end
subgraph GW["dsh-overdrive gateway(独立 Node 进程)"]
AD[平台适配器] --> CORE[会话映射 · 白名单 · 命令 · 轨迹卡片]
end
subgraph DSH["DeepSeek Harness(docker)"]
PLUGIN[gateway-core 插件] --> AG[DSH Agent]
AG --> LLM[DeepSeek / 任意模型]
AG --> TOOLS[工具 · 沙箱]
end
PLAT |Remote Session Driver / HTTP+WS+token| GW
GW |协议| PLUGIN AG -. session/event .-> PLUGIN

packages/gateway-core 是一个 DSH 插件(已备好 dsh.bundle.patch),对外暴露 Remote Session Driver API;packages/gateway 是独立的多平台网关。"灵魂"——轨迹、审批、多智能体——都在插件里,不依赖平台适配器,经得起插件 API 变动。

开发

npm install
npm run build
npx vitest run # 128+ 单元测试
npm run e2e # 全链路 mock E2E(消息 / 审批 / 白名单)

文档

- 📦 快速开始 · 🎬 演示剧本 · 📣 渠道清单 · 📤 npm 发布
- 🧪 平台验收清单
- 📐 设计文档 · 🔭 DSH 接口调研

路线图

- [x] M1–M2b:协议、真实 DSH 桥接、国际平台
- [x] M3:飞书 / 钉钉 / 企业微信
- [x] M4:轨迹卡片、/task /cron、流式打字、图片收发、WhatsApp 原生审批按钮
- [x] M5:docker-compose 一键部署、Web 控制台、MIT + CI、npm 分发
- [x] v0.2a:语音转写 ASR(OpenAI 兼容端点,ASR_API_KEY)、飞书原生交互审批卡片、钉钉 actionCard 审批
- [ ] v0.2b:个人微信(实验性)

📚 收录情况

已被社区索引与精选列表收录:

| 列表 | 收录内容 |
| awesome-dsh-plugin(社区精选) | dsh-overdrive#gateway-core |
| dsh-index(官方插件索引) | dsh-overdrive |
| 0xsline/awesome-deepseek-harness | dsh-overdrive |
| Dominic789654/awesome-deepseek-harness | dsh-overdrive |
| Anil-matcha/awesome-dsh-plugin | dsh-overdrive |
| losebird/dsh-plugin-market | dsh-overdrive |

开源协议

MIT © dsh-overdrive contributors
预览分享卡片长什么样 ↓temotee2103/dsh-overdrive
分享 · DeepSeek Harness Hub
temotee2103/dsh-overdrive

把 DSH 接入各大聊天平台,随时指挥并查看思考轨迹

这是你的仓库?认领条目

回到顶部