把 DSH 接入 QQ,让机器人听懂语音、看懂图片并记住聊天
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dogeheng/dsh-omni该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 39 处,展示前 30 条)
- 执行外部命令固定命令packages/bridge/src/bridge.js:1171
const out = execFileSync('netstat', ['-ano', '-p', 'TCP'], { encoding: 'utf8', timeout: 5000, stdio: ['ignore', 'pipe', 'ignore'] }); - 执行外部命令固定命令packages/bridge/src/bridge.js:1174
const out = execFileSync('sh', ['-c', 'ss -ltn 2>/dev/null || netstat -ltn 2>/dev/null || true'], { encoding: 'utf8', timeout: 5000, stdio: ['ignore', - 发起网络请求packages/bridge/src/bridge.js:1645
const response = await bot.request('fetch_custom_face_detail', { count }); - 发起网络请求packages/bridge/src/bridge.js:1926
const res = await fetch(`${httpUrl}/${action}`, { - 发起网络请求packages/bridge/src/bridge.js:2001
const res = await fetch(`${httpUrl}/get_msg`, { - 发起网络请求packages/bridge/src/bridge.js:2049
const res = await fetch(`${httpUrl}/fetch_ptt_text`, { - 发起网络请求packages/bridge/src/bridge.js:2099
const res = await fetch(`${httpUrl}/${action}`, { - 发起网络请求packages/bridge/src/bridge.js:2388
const res = await fetch(`${httpUrl}/${action}`, { - 执行外部命令固定命令packages/bridge/src/bridge.js:3816
execFile('docker', ['restart', container], { timeout: 90_000 }, (error) => { - 读取本地文件packages/bridge/src/console-assets.js:20
const body = readFileSync(join(publicDir, 'console-assets', asset[0])); - 读取密钥环境变量packages/bridge/src/dsh-client.js:37
const fromEnv = process.env.DSH_LAUNCH_TOKEN; - 发起网络请求packages/bridge/src/dsh-client.js:418
const res = await fetch(url, { redirect: 'manual', signal: AbortSignal.timeout(this.timeoutMs) }); - 发起网络请求packages/bridge/src/dsh-client.js:577
const response = await fetch(input, { ...init, headers }); - 发起网络请求packages/bridge/src/mcp-host-server.js:56
const res = await fetch(`${httpUrl}/get_login_info`, { - 发起网络请求packages/bridge/src/mcp-snowluma-safe.js:90
const res = await fetch(`${httpUrl}/${action}`, { - 发起网络请求packages/bridge/src/mcp-snowluma-safe.js:167
const res = await fetch(`${agentApiBase()}${path}`, { ...rest, headers, signal: AbortSignal.timeout(timeoutMs) }); - 发起网络请求packages/bridge/src/mcp-snowluma-safe.js:242
req = http.request({ - 发起网络请求packages/bridge/src/safe-fetch.js:218
req = mod.request({ - 执行外部命令固定命令packages/bridge/src/singing.js:139
const out = execFileSync('vm_stat', { encoding: 'utf8', timeout: 2000 }); - 执行外部命令来自配置/变量packages/bridge/src/singing.js:173
try { execFileSync(c.ffmpegPath, ['-version'], { stdio: 'ignore', timeout: 2000 }); ffmpegOk = true; } catch {} - 执行外部命令来自配置/变量packages/bridge/src/singing.js:292
child = spawn(command, commandArgs, { - 发起网络请求packages/bridge/src/snowluma-conn.js:86
const res = await fetch(`${baseUrl}/get_login_info`, { - 读取密钥环境变量packages/bridge/src/snowluma-conn.js:120
const explicit = token || process.env.SNOWLUMA_TOKEN || sl.accessToken || ''; - 执行外部命令固定命令packages/bridge/src/state-acl.mjs:36
return spawnSync('icacls', args, { encoding: 'utf8', timeout, windowsHide: true }); - 执行外部命令来自配置/变量packages/bridge/src/voice-asr.js:402
const child = fork(WORKER_PATH, [], { serialization: 'advanced', stdio: ['ignore', 'ignore', 'pipe', 'ipc'], execArgv: [] }); - 执行外部命令来自配置/变量packages/bridge/src/voice-core.js:163
child = spawn(ffprobePath, [ - 执行外部命令来自配置/变量packages/bridge/src/voice-core.js:402
child = spawn(ffmpeg, args, { windowsHide: true, stdio: 'ignore' }); - 执行外部命令来自配置/变量packages/bridge/src/voice-core.js:423
child = spawn(ffmpeg, wavArgs, { windowsHide: true, stdio: 'ignore' }); - 发起网络请求packages/bridge/src/web-search.js:212
req = https.request({ - 写入剪贴板packages/launcher/client.js:105
await navigator.clipboard.writeText(item.url);
扫描于 2026/11/3(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-omni
把 DeepSeek Harness 接到 QQ,聊天、听语音、看图,也记得住事。
看看界面 ·快速开始 ·功能 ·文档 ·反馈问题
这是我的 QQ 伙伴「大肥鱼」用的整合包。我想让她能听懂群友的语音、看大家分享的图,记住聊过的事,也知道什么时候该安静。
消息通过 SnowLuma 进出 QQ,由 DeepSeek Harness(DSH)处理对话。角色、权限、聊天节奏和用量都可以在本地控制台里调整。项目基于 qq-bridge 做整合与二次开发。
看看界面
控制台按「总览、聊天与性格、感知与表达、记忆与学习、运行与安全」组织。参数旁有用途和影响说明,也能直接搜索定位。
查看聊天设置与参数说明
比如,调高冒泡概率会增加冷场后的主动参与机会;实际是否开口,还会受到夜间时段、近期活跃程度和 AI 判断的影响。
碰一碰大肥鱼
碰眼睛会捂眼,碰耳朵会动一动;点一下就能进入对应设置。共九种动作,支持键盘和触屏,也可以暂停。角色采用分层 2D 动画,详见交互说明。
截图与动图均来自离线演示,使用模拟数据,不含真实聊天记录。
能做什么
| 用途 | 已有功能 |
| 参与聊天 | 群聊和私聊分别对应 DSH 会话;支持引用、分条发送、拍一拍、潜水、唤醒与冷场冒泡。
展开完整文档(README 剩余 1 节)
dsh-omni 把 DeepSeek Harness 接到 QQ,聊天、听语音、看图,也记得住事。 看看界面 ·快速开始 ·功能 ·文档 ·反馈问题 这是我的 QQ 伙伴「大肥鱼」用的整合包。我想让她能听懂群友的语音、看大家分享的图,记住聊过的事,也知道什么时候该安静。 消息通过 SnowLuma 进出 QQ,由 DeepSeek Harness(DSH)处理对话。角色、权限、聊天节奏和用量都可以在本地控制台里调整。项目基于 qq-bridge 做整合与二次开发。 看看界面 控制台按「总览、聊天与性格、感知与表达、记忆与学习、运行与安全」组织。参数旁有用途和影响说明,也能直接搜索定位。 查看聊天设置与参数说明 比如,调高冒泡概率会增加冷场后的主动参与机会;实际是否开口,还会受到夜间时段、近期活跃程度和 AI 判断的影响。 碰一碰大肥鱼 碰眼睛会捂眼,碰耳朵会动一动;点一下就能进入对应设置。共九种动作,支持键盘和触屏,也可以暂停。角色采用分层 2D 动画,详见交互说明。 截图与动图均来自离线演示,使用模拟数据,不含真实聊天记录。 能做什么 | 用途 | 已有功能 | | 参与聊天 | 群聊和私聊分别对应 DSH 会话;支持引用、分条发送、拍一拍、潜水、唤醒与冷场冒泡。 | | 听与说 | 本地 SenseVoice 语音识别;可选语音合成、语音库和短句随机转语音。支持多种 TTS 服务。 | | 看图与读链接 | 图片理解、QQ 收藏表情、B 站卡片信息与字幕、联网搜索。B 站工具只读,处理群友分享的内容。 | | 角色与记忆 | 人格卡和提示词热更新、长期记忆、群内黑话学习。群和私聊的记忆按作用域隔离。 | | 本地管理 | 白名单、管理员权限、能力与工具开关、token 花费看板;macOS 上还可设置离电省电策略。 | 唱歌、短翻唱、受限文件工作区等能力需要另外准备环境。可以先跑通文字聊天,再按需开启;配置方法见文档。 四种运行模式怎么选? | 模式 | 行为 | | chat | 白名单内的普通对话。 | | reserved | 一代仿真,按触发概率和活跃周期参与群聊。 | | reserved2 | 二代仿真,自主阅读、发言、等待、潜水和安排唤醒。 | | closed-agent | 仅管理员私聊可用的 Agent 模式。 | 在「运行与安全 → 连接与模式」切换。想调整二代的参与节奏,到「聊天与性格 → 聊天习惯」。 快速开始 下面以 macOS + DSH 桌面版 为例。先准备 Node.js ≥ 22.13、已安装并登录的 DSH 0.2.x,以及正在运行的 Docker。其他 profile、可选组件和排障见安装与维护。 1. 下载并配置 git clone https://github.com/dogeheng/dsh-omni.git cd dsh-omni npm --prefix packages/bridge installbash cp -n packages/bridge/config.example.json packages/bridge/config.json cp -n packages/bridge/.env.example packages/bridge/.env 后面的命令都在 dsh-omni 仓库根目录 执行。 编辑 packages/bridge/config.json,填写管理员 ownerQQ 和 QQ 白名单 allow.private / allow.groups。在 packages/bridge/.env 里把 VNC_PASSWD 改成自己的密码。配置字段说明见这里。 2. 启动 QQ 网关 bash docker compose --env-file packages/bridge/.env -f packages/bridge/docker-compose.snowluma.yml up -d 打开 扫码桌面 登录 QQ,再到 SnowLuma WebUI 配置 OneBot v11 HTTP(3000)和正向 WebSocket(3001)。如启用了访问令牌,把同一个值填入 snowluma.accessToken。 3. 接入 DSH,再启动桥接 bash node packages/bridge/scripts/setup-dsh.mjs desktop 安装完成后,重启 DSH,等它启动好,再运行: bash bash packages/bridge/start-mac.sh 脚本会探测 DSH 当前端口并启动桥接。打开 本地控制台,按提示使用 packages/bridge/data/console-token 中的令牌,然后在白名单会话里测试聊天。 DSH 桌面版重启后可能更换端口,需要重新运行启动脚本。也可以安装自动跟随服务。 只想先试试控制台? 安装 Node 依赖后运行: bash npm --prefix packages/bridge run preview:console 访问 <http://127.0.0.1:4173>。这是离线预览:保存只改内存中的示例数据,试发不会连接 QQ,也不需要登录 DSH。 文档 | 想了解什么 | 入口 | | 配置、其他配置档、自动启动、迁移、常见问题 | 安装与维护 | | 控制台分类、参数说明、角色互动 | 控制台界面 | | 消息如何在 QQ 与 DSH 之间流转 | 架构 | | 语音识别、音色、合成服务与读音修正 | 语音收发 | | 记忆的作用域、检索与提炼 | 长期记忆 | | macOS 离电时保留哪些能力 | 电源与省电 | | 曲库唱歌 / 群内短翻唱 | 唱歌 · 短翻唱 | | 限制智能体文件读写范围 | 文件工作区 | 开发与验证 运行代码位于 packages/bridge;packages/launcher 和 packages/bili-mcp 是可选的 DSH 集成组件。 bash npm test npm --prefix packages/bridge run test:console-ui npm --prefix packages/bridge run test:console-character 浏览器检查需要 Playwright 和 Chromium。完整审计有平台与安装环境依赖,已有失败及覆盖范围记录在验证说明。修改预设后的构建步骤见维护文档。 数据与访问 config.json、.env、data/、audio/ 留在本机,已加入 .gitignore。其中可能包含令牌和聊天记录,请勿上传。控制台及网关默认绑定本机回环地址,聊天范围由白名单控制。 账户余额查询仅用于主人私聊,不会带进群聊提示词。语音合成或其他外接服务可能产生费用,是否启用及用量上限由你配置。 来源与许可证 由 dogeheng 维护,采用 MIT。这个项目用到了以下开源项目: - qq-bridge:Derpyu520 与 qq-bridge / QSH contributors,MIT。 - dsh-bili-scroll:c1overzz,MIT;其内置的 bilibili-mcp 来自 AGI_Ananas,MIT。 - Seed-VC:Plachtaa,GPL-3.0。可选组件,通过独立进程调用,代码和权重未打包进本仓库。 完整第三方声明见 NOTICE.md。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
dogeheng/dsh-omni
把 DSH 接入 QQ,让机器人听懂语音、看懂图片并记住聊天
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7
这是你的仓库?认领条目