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

QQ 桥接框架 haotianshouwang/dsh-onebot-bridge

DeepSeek 客户端
haotianshouwang2 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

把 QQ 消息接入智能体,支持群聊与权限管理

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

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

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/haotianshouwang/dsh-onebot-bridge.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:user.qzone.qq.com

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

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

DSH QQ 插件框架(开发中,未验收,请勿用于生产环境):OneBot 11、主人管理、受限 Agent

README

由 DeepSeek 最新模型翻译生成
DSH QQ Framework 0.13.0 ⚠️ 开发中,请勿用于生产环境 这个项目仍在开发与验证阶段,不提供任何稳定性或安全承诺。 - 群聊会话连续性、上下文压缩、跨重启恢复等关键能力尚未完成真实环境验收; - 部分能力(如压缩摘要、真实重启恢复)目前只有代码审计与单元测试支撑,缺少生产证据; - 配置项、数据结构、插件接口随时可能变更,升级可能不向后兼容; - 请在隔离环境、测试账号下试用,不要接入真实社群或承载实际业务。 欢迎评审与反馈,但请把它当作实验品,而不是可直接上线的成品。 DeepSeek Harness 0.2.1-rc.2 的原生 QQ 插件框架。入口:账号菜单 → 设置 → QQ 框架;独立管理站点:<http://127.0.0.1:3097>(「夜航控制台」)。 UI 与插件治理后的开发规范:仓库根目录 docs/ARCHITECTURE.md、DEVELOPMENT.md、CODING_STANDARDS.md、PLUGIN_SYSTEM.md、PLUGIN_DEVELOPMENT.md、UI_GUIDELINES.md、API_CONVENTIONS.md、SECURITY.md、MIGRATION.md。改 UI 之前必须先读 UI_GUIDELINES.md。 夜航控制台 暖白、低饱和、固定侧栏的本地管理台。
展开完整文档(README 剩余 1 节)
DSH QQ Framework 0.13.0

⚠️ 开发中,请勿用于生产环境

这个项目仍在开发与验证阶段,不提供任何稳定性或安全承诺。

- 群聊会话连续性、上下文压缩、跨重启恢复等关键能力尚未完成真实环境验收;
- 部分能力(如压缩摘要、真实重启恢复)目前只有代码审计与单元测试支撑,缺少生产证据;
- 配置项、数据结构、插件接口随时可能变更,升级可能不向后兼容;
- 请在隔离环境、测试账号下试用,不要接入真实社群或承载实际业务。

欢迎评审与反馈,但请把它当作实验品,而不是可直接上线的成品。

DeepSeek Harness 0.2.1-rc.2 的原生 QQ 插件框架。入口:账号菜单 → 设置 → QQ 框架;独立管理站点:<http://127.0.0.1:3097>(「夜航控制台」)。

UI 与插件治理后的开发规范:仓库根目录 docs/ARCHITECTURE.md、DEVELOPMENT.md、CODING_STANDARDS.md、PLUGIN_SYSTEM.md、PLUGIN_DEVELOPMENT.md、UI_GUIDELINES.md、API_CONVENTIONS.md、SECURITY.md、MIGRATION.md。改 UI 之前必须先读 UI_GUIDELINES.md。

夜航控制台

暖白、低饱和、固定侧栏的本地管理台。主导航为总览、连接、聊天、监听、权限、插件、日志、安全;「插件」下新增四个独立页面:

- 表情包:真实索引、图片代理、分类筛选、时间筛选、详情/删除、收集概率/冷却/排除词。
- QQ 空间:真实 NapCat 空间读取、目标 QQ、时间排序、分页加载、设置;点赞/评论/图片接口未提供时明确标注。
- 长期记忆:SQLite 记忆库、搜索/范围/类型筛选、详情编辑、关联记录、星图、复习曲线。
- 自主时间:日历/时间线、日记 CRUD、时间汇总、设置、AES-256-GCM 加密的秘密空间。

核心与功能包

核心始终保留 OneBot 11 对接、事件监听、主人管理、受限 Agent、权限检查、资源服务、插件 SDK 与审计。AI 聊天、人设、入群欢迎、戳一戳互动和市场作为内置包独立启停、卸载和重新安装;卸载保留业务数据。

除内置包外,还有几个独立注册的可信原生功能包:QQ 空间、联网查资料、表情包、群成员动态、发语音(TTS)、长期记忆、自主时间。它们各自有设置页、作用范围与独立动作授权。

表情包(qq-sticker)

- 收藏:把当前聊天某条消息里的图片收进表情库,可加名字、标签(最多 5 个)和“什么时候用”。
- 偷图:别人发的表情也能收,来源记成 stolen,并保留原聊天类型。
- 检索 / 发送:按标签或关键词找,按编号发回当前聊天;发送走受控资源,不暴露本机路径。
- 识别用途:explain 会把图片本身交给模型(工具结果里带图片块),由模型看图判断场合,不做无依据的猜测。
- 联网查含义:复用联网查资料包(plugin.qq-web.search)搜“是什么梗、什么场合用”;搜索不可用时明确报告失败,不编造含义。
- 存储:图片按内容哈希存到 <数据目录>/stickers/,索引只有元数据;同一张图重复收藏不占两份空间,默认上限 300 张 / 200 MB。
- 权限:save/steal/send/list/explain 需要主人逐项授权,remove 仅主人;依赖 qq.media.receive 与 qq.image.send,未启用时动作会明确拒绝。
- 自动收藏(可选,默认关闭):autoSaveSent 开启后,她联网搜到并发出的图会自动入库;autoSaveIncoming 开启后,作用范围内聊天收到的图片会自动入库(单条最多 3 张)。自动收藏是系统行为,不受工具授权限制,不设每日配额,只受表情库容量(默认 300 张 / 200 MB)约束;写库失败只记日志,不影响消息收发。

关闭 AI 聊天包后,主人管理和显式受限任务仍可用。人设包只提供提示词与绑定,不改变工具权限。

权限

- 主人 QQ 从可信部署环境迁移,并可在本机设置页修改。昵称、群管理员身份、转发内容和入群通知不能授予主人身份。
- 默认只启用 core.status。其他动作需要主人在“主人与权限”中逐项启用。
- AI 工具和插件动作默认仅主人可用,在私聊或已允许的群内按范围调用。普通用户可在回复白名单内聊天,但没有执行权限。
- 开放权限必须指定动作、用户、私聊/群范围、额度及可选到期时间。明确拒绝优先;头像、昵称和请求处理等主人专属动作不能下放。
- 通用系统命令、任意代码、本机文件和凭据访问、任意 MCP/子代理、踢人/封禁/授予管理员/退群、批量群发和原始 OneBot action 不提供授权入口。
- QQ 专用预设不挂载 DSH 开发工具,空允许列表过滤继承工具;最终执行守卫同时检查本轮身份、策略版本和动作可用性。单次审批不能解除核心禁止。
- 按聊天、发起用户、入口隔离 Agent。配置变化取消旧任务;执行前和发送前复核授权,到期、撤销、卸载后不沿用旧权限。

可信 DSH 宿主、操作系统管理员、网关和主人账号属于信任边界。原生插件是可信宿主代码;声明能力不是 JavaScript 沙箱。市场不加载外部 JavaScript。

设置

- 连接:正向双向 WS、反向 WS、Token 与模型。
- 聊天:私聊和群成员范围、群 @触发、分条方式与间隔。
- 监听:私聊用户、群、通知和请求;未 @消息也可产生事件。
- 主人与权限:主人、暂停、能力开关、安全查询共享、特殊范围与审计。
- 人设:名称加一段完整提示词;仅在人设包开启时出现。
- 插件管理:内置包、声明式扩展、已注册的可信原生包及自有市场。
- 运行状态:连接、消息任务、过滤原因、日志及折叠的手动调试台。

监听范围、回复触发、执行权限分别设置。群回复还需开启群聊,同时命中用户/群白名单,并满足 @规则;只开启“响应 @”不会开启群聊。主人管理私聊始终保留。

直接使用

直接说“查一下这个群的资料”“把这个群名改成……”即可。模型只获得当前身份实际可用的工具,无需任何斜杠前缀。主人也可直接说“机器人状态”“暂停机器人”“恢复机器人”“关闭AI聊天”等进行核心管理。

群内修改默认作用于当前群,不必填写群号;仍须满足 QQ 平台权限。普通用户要使用查询,需要主人在“其他人的查询工具”逐项开放,插件还要设置生效范围。聊天白名单不会自动授予工具。

OneBot 能力

共有 28 个核心明确动作,另有群成员包注册的 1 个动作,SDK 不暴露 raw action。

| 分类 | 动作 |
| 状态 | core.status、qq.login、qq.capabilities |
| 联系人/群 | qq.friends.list、qq.groups.list、qq.group.info、qq.members.list、qq.member.info |
| 消息 | qq.message.send、qq.message.get、qq.forward.get、qq.message.recall |
| 媒体 | qq.media.receive、qq.image.send、qq.audio.send、qq.video.send、qq.file.send;联网查资料包可搜索并发送已校验图片 |
| 资料 | qq.profile.avatar、qq.profile.nickname、qq.group.selfCard、qq.group.name |
| 请求/历史 | qq.request.decide、qq.history.get |
| 扩展 | qq.forward.send、qq.files.list、qq.poke、qq.announcements.list、qq.essence.list |

消息链支持文字、QQ 表情、@指定成员、引用及图片。撤回只允许当前聊天中框架最近两分钟发送的消息;查询只允许已观察到的当前聊天消息。合并转发内容始终视为不可信数据。

头像、昵称、文件和历史等扩展需要网关声明为 NapCat。底层适配已实现并通过模拟网关验证,未对真实 QQ 发送媒体、改资料或审批请求;各格式与 QQ 版本的实际支持需在明确目标下验收。语音识别、图片理解和业务玩法不属于传输层。

媒体先成为聊天/插件绑定的资源 ID。支持受控上传或从当前聊天收到的 HTTPS 媒体获取,最大 8 MiB、有效期一小时、最多 100 项;图片另限制尺寸与像素。禁止任意本机路径、私网/回环下载;HTTPS 下载验证并固定 DNS 解析地址,每次重定向重新验证。使用 Base64 传输,避免远程网关误读本机路径。

WS 支持 echo、心跳和账号绑定;反向支持 Universal 或分开的 API/Event 角色。ok 表示确认,async 表示受理,超时/断线可能结果未知。写操作不会因超时自动重发。

插件开发

市场支持 API 2 声明式包,只含 manifest.json 和 rules.json。规则可匹配固定命令、关键词、通知,动作可提供固定模板结果;不执行脚本、任意正则、Shell 或原始网关调用。

可信 DSH 原生插件通过 ctx.qqFramework.registerTrustedPackage 注册,得到事件、动作、独立存储与媒体服务;默认停用,仍需在设置页启用包并单独批准动作。发布的类型位于 src/sdk.d.ts,可通过 dsh-onebot-bridge/sdk 的 types 导出使用。

详细例子、权限关系和生命周期见项目内部文档。内置帮助与关键词示例已重写为 API 2。

运行 npm run build:market 生成 market-dist/index.json 及两个 ZIP。市场索引 schema 仍为 1,包 hostApiVersion 为 2;条目包含完整 manifest、url、sha256。支持本地和公开 HTTPS 源;同进程 JavaScript 扩展不再兼容。

数据与迁移

state.json 升级为 schema 2。迁移前保存 state.before-framework-v2.json;旧设置、人设、绑定和聊天历史保留,旧高权限 QQ 会话取消并归档。旧 JavaScript 扩展停用,提示重装声明式版本。重启取消未完成任务,不从持久化文本重新创建执行身份;发送中任务标记结果未知。

请求收件箱持久化,处理中重启的请求标记结果未知,不自动重复审批。最近事件仅记录元信息;消息观察索引和发送账本在内存中。临时资源在重启时清理。

Token 使用 DSH 凭据服务 DSH_ONEBOT_ACCESS_TOKEN,不写入插件市场包或回显。设置 API 复用 DSH 的管理员认证和来源检查。

验证与范围

npm test:核心回归与本机模拟网关。framework-ui-smoke.cjs、framework-ui-actions.cjs、framework-integration.cjs 依赖本机 Playwright/Edge,用于 UI 与真实 DSH 模型联调。集成脚本切换到本机模拟网关,结束恢复配置;不要在用户聊天期间随意运行。

没有安装或执行参考项目 Derpyu520/qq-bridge,也没有复用其源码、签名实现或提示词;旧 dsh-qqbot 仍保持卸载。

本版已加入合并转发发送、群文件目录浏览、受限戳一戳、公告和精华查询。尚未实现签名/在线状态、好友赞、群头像、群文件下载等。外部脚本沙箱和通用后台自动化也未实现,不会作为已完成能力开放。

0.3.0 功能包开发流程

插件管理增加独立设置页、版本依赖、设置历史、配置迁移与实际包回滚。声明式包保留当前及最近三个历史版本;升级和回滚后停用,需确认后启用。原生包由 DSH 管理宿主代码版本。

新增内置原生包「群成员动态」,默认停用、欢迎关闭,记录范围需单独选择。记录保留 1–90 天、20–250 条,不存聊天正文,支持分页与 CSV。AI 查询只允许主人,仍需单独授权。自动欢迎是有限事件规则,不借用主人执行身份。

原生 SDK 提供 settings、getScope、storage.update、automaticReply、输入拒绝、回调期限和单包故障隔离。完整字段、迁移示例与信任边界见项目内部文档;联合验收说明见项目内部文档。83 项自动测试及实际页面/本地模拟网关联调已通过,真实 QQ 写操作待联合验收。

0.3.1 调整聊天与权限交互,修复内置开关反馈,并支持其他用户的安全查询共享。详细行为与信任边界见 项目内部文档;实际模型和界面联调记录见项目 data/phase3-integration.json。

0.4.0 输入与群聊

所有需要好友/群目标的主要设置复用可搜索选择器,仍可手动填写。群聊支持仅被叫、适度参与、逐条回复;适度参与默认 10%、30 秒冷却、每群每分钟两次随机触发,随机参与不执行工具。私聊保留正常回复。

图片以真实图片块送入 DSH,文本模型回退 OCR;语音用 NapCat 原消息转写,文件原件通过 DSH 会话级 receipt 保存并提取 TXT/DOCX/PDF 等正文;视频附加原件并抽前十五秒最多三帧,不转写视频音轨。Node 至少22.13,视频抽帧需要预装 ffmpeg。大小、页数、时间和身份限制见 项目内部文档。

0.5.0

引用原文与媒体补全;按群共享公共上下文、逐轮隔离执行权限;修复人设最终入模与工作目录上下文;整轮文字与条数预算。详见 项目内部文档。

0.5.1

支持群聊和私聊戳一戳的人设短回复;独立零工具互动、冷却、开关和聊天范围检查。验收步骤已补入 项目内部文档。

0.5.4

默认不附引用框;兼容旧人设的聊天分隔符;降低重复自我对话权重,并对明显复读的纯聊天草稿最多进行一次无工具改写。人设原文保留。已撤下未启用的钱包适配。验收步骤见 项目内部文档。

0.6.0:参与决策与聊天对象

新增同一发起人的连续消息合并、零工具参与判断、最多一次短暂观察、取消和过时回复检查;按群和好友集中配置接收、回复范围、人设、聊天背景与节奏。设置提供总览、搜索、可展开导航、草稿保护和活动原因。明确工具任务继续走原发起人的受限权限。

本次完成交互改版第一轮。持久化话题/成员记忆、表情库、主动定时参与和用量看板属于后续阶段;没有作为已完成能力开放。测试步骤见 项目内部文档。

0.6.1:自然分条

新增 natural 分条方式:短聊天的单次换行发送为不同 QQ 气泡,列表和代码不按每行拆开。保留按空行分段、按字数和整段发送;超过整轮条数时仅合并尾部,不把整轮重新合成一个气泡。已用工具发送的消息仍占用同一轮预算;戳一戳保持单条。

0.6.2:连续交谈与超时取消

续聊窗口默认 120 秒、8 轮,实际回复后滑动延长,单次最长 10 分钟;多人独立、支持戳一戳后的文字、首次回答期间补充及确认的工具发送。注意力元数据可持久化,不携带执行授权。修复 agent.cancel 返回 void 时超时回调导致 DSH 退出的问题。详见 项目内部文档。

0.7.0:独立戳一戳包与统一卸载

戳一戳策略移入 src/builtins/poke/,支持 AI/固定文字、受控回戳、AI 零工具决策、冷却与范围选择;AI 聊天关闭时仍可固定回应。默认不自动回戳,需显式许可并启用核心动作。

所有内置、市场和原生包使用两步卸载确认,默认保留配置,也可按清单删除所属配置;代码目录、人设正文及业务记录保留。重装先保持停用,市场本地重装重新检查完整性。172 项测试和真实 DSH/模拟 OneBot 联调通过。步骤和清理边界见 项目内部文档。

0.8.0:多主人、语义交流与表达偏好

主人设置支持多个 QQ 和好友选择;身份检查统一覆盖管理、事件和最终执行权限。未 @ 群消息先判断交流对象,续聊不再因主人发言而自动接话;明确叫她与随机参与分别处理,判断使用零工具并限制用量。动作描写、语气词分别支持自然表达、关闭及按轮概率允许,保留完整括号或去掉完整动作片段。192 项测试与真实 DSH/模拟 OneBot 六项联合检查通过;步骤见 项目内部文档。

0.9.0:发语音(TTS)

新增独立原生包 发语音(TTS)(qq-tts),默认停用。她把一段文字合成为 QQ 语音消息发到当前聊天:模型调用 plugin.qq-tts.speak,插件把合成结果登记为当前聊天的音频资源,再由核心 qq.audio.send 发出;不接触任意本机路径,也不直接调用网关。

- 本地语音(默认):调用 Windows 内置语音(默认 Microsoft Huihui Desktop),生成 24 kHz 单声道 WAV,再用 ffmpeg 转 64 kbps MP3。离线、不需要密钥;本机需安装 ffmpeg(可用 ffmpegPath 指定完整路径)。
- 硅基流动:向 OpenAI 兼容的 POST /v1/audio/speech 发请求,默认模型 FunAudioLLM/CosyVoice2-0.5B、音色 FunAudioLLM/CosyVoice2-0.5B:alex。密钥填在设置页,或留空读取环境变量 SILICONFLOW_API_KEY(custom 读取 TTS_API_KEY)。
- 自建网络语音:custom 可指向任意兼容 /v1/audio/speech 的服务(例如本机 GPT-SoVITS、CosyVoice、Kokoro),地址允许 http://127.0.0.1:…。
- 限制与记录:单条字数、同一聊天冷却、本地最长秒数可设;合成或发送失败会报出原因,设置页“最近记录”保留最近 20 条成功/失败与耗时。
- 权限:动作标记为 mutating,不能作为“所有用户”的安全查询共享;包启用、动作授权、作用范围是三个独立步骤,仍需在“主人与权限”里启用 plugin.qq-tts.speak 与 qq.audio.send。

启用步骤:插件管理 → 发语音(TTS)→ 选择作用范围并启用 → 主人与权限里启用上述两个动作 → 直接说“用语音说一句……”。语音以 MP3 经 base64:// 传给 NapCat,实际播放取决于网关的语音转换能力(can_send_record),需要在真实账号下验收。网络语音会把朗读文字发到配置的服务,密钥保存在本机状态文件里,不要连同 data 目录一起分发。

0.10.0:长期记忆

新增独立原生包 长期记忆(qq-memory),默认停用。它把明确要求记住的信息写进本机 SQLite,支持嵌入模型与向量检索,并在每轮回复前自动带上一小段相关记忆。

- 存储:data/dsh-onebot-bridge/memory/memory.db,WAL 关闭、单文件,便于备份。表里有范围、类型、标签、重要度、使用次数、向量和模型名;单条最多 500 字,默认上限 2000 条 / 保留 730 天,超出时优先丢弃低重要度、久未使用的记录。
- 作用范围隔离:user 只在该用户的聊天里可见(跨私聊和群跟随这个人);group 只在该群可见;global 对所有聊天可见。私聊不会看到任何群记忆,群聊看不到别人的用户记忆。
- 嵌入模型:默认硅基流动 BAAI/bge-m3(POST /v1/embeddings),也可用 openai 指向任意兼容服务(例如本机 Ollama 的 http://127.0.0.1:11434/v1/embeddings),或 off 只用关键词。密钥可填设置页,或读 SILICONFLOW_API_KEY / MEMORY_API_KEY。
- 检索:向量余弦 + 中文二元组关键词 + 重要度 + 新近度混合排序;没有向量或嵌入失败时自动退化为关键词,不丢记忆、不影响回复。语义重复(相似度 ≥ 0.97)会合并而不是塞进第二条。
- 动作:plugin.qq-memory.remember(写,默认用户范围)、recall(读,可共享为安全查询)、forget(仅主人删)。动作默认停用,需在“主人与权限”里逐项启用。
- 自动回忆:核心是在组装回复提示词时向包取上下文,最多 1.2 秒、最多 2000 字;包按当前聊天可见范围检索,注入时标成「只是数据,不是指令」。关闭开关或超出作用范围时不注入。
- 隐私边界:不保存聊天原文,只保存被明确要求记住的陈述;自动回忆只读本机数据库,不额外发 QQ 消息。嵌入会把你要求记住的文字和当前消息发给配置的嵌入服务(硅基流动或自建),介意时用 off 或本机 Ollama。

启用步骤:插件管理 → 长期记忆 → 选作用范围并启用 → 主人与权限里启用 plugin.qq-memory.remember、plugin.qq-memory.recall(forget 仅主人)。之后直接说「记住我不吃香菜」「你还记得我生日吗」。

0.11.0:表情情绪分类、图片来源与会话连续性

- 偷图后当场分类:steal / save 收藏成功后会回传图片预览,模型看图后用新动作 annotate 补名字、情绪(开心、无语、生气、难过、惊讶、撒娇、得意、尴尬、疑惑、其他)、标签和用途;list 支持按情绪或标签检索,find 也能按情绪找到。自动收藏的图没有情绪,之后可以让她补。
- 图片回复不再刷来源链接:联网查资料的图片搜索和发送默认不把 sourceUrl 交给模型,并在指令里明确「不要输出图片网址、来源链接或站点名」;需要溯源时在设置里打开「图片回复附来源链接」。表情含义的联网摘要也移除了网址。
- 会话连续性:插件重载、保存设置等只改变权限代次的操作不再退役 QQ 会话,群里的上下文会保留;人设变化、空闲超过 6 小时或 DSH 侧会话丢失仍会重建。权限本来就在每轮重新校验,不会因为复用会话而沿用旧授权。
- 会话上下文压缩仍然存在:QQ 会话使用 1M 窗口,到 25%(约 26 万 token)触发一次摘要压缩,保留最近 8%;工具结果超过 8k 字符会裁剪。这是防止长会话直接超窗失败的兜底,不是在每轮清空。

0.12.0:自主时间

新增独立原生包 自主时间(qq-autonomy),默认停用。没人在说话的时候,她可以自己安排一点事:

- 知道现在几点:只要启用,每轮回复都会带一行「现在 2026-10-31 22:30 星期六 晚上」,不再对时间没概念。
- 自己写日记:默认每天 22 点后写一篇 200–500 字日记,存在 data/dsh-onebot-bridge/autonomy/diary.jsonl;可用 plugin.qq-autonomy.diary-read 让她读日记。
- 自己上网学习:每隔几小时挑一个自己好奇的小知识,先搜索、读正文,再用自己的话写 2–3 句存进长期记忆(tags 带「学习」)。
- 学群里的黑话:内存里保留最近群消息(不落盘),每隔一段时间让模型结合上下文推断新黑话/缩写/梗的意思,有把握的写进本群记忆(tags 带「黑话」),之后的回复会自动回忆。
- 自己发空间:默认关闭;打开后每天最多一条,走 QQ 空间包自己的可见范围、每日上限和冷却。
- 自己翻空间:默认关闭;需要填写「可浏览的 QQ」,只翻这些人的空间。看到有趣的最多评论一条(默认也关闭),评论必须来自本次实际浏览到的 postRef。
- 边界:每次活动都是独立受限会话,只能调用本活动白名单里的动作,不能发 QQ 消息,不能改权限;所有活动有活动时段、每天总次数上限和失败记录,设置页能看到「上次活动」和结果。

启用步骤:插件管理 → 自主时间 → 选作用范围并启用 → 按需打开「自己发空间/自己翻空间/评论」 → 主人与权限里启用 plugin.qq-autonomy.diary-write、diary-read、run 以及要用到的空间/联网/记忆动作。之后她会按时间表自己做事;你也可以说「现在写篇日记」「去学点东西」,或者用 run 动作手动安排一次。

0.13.0:独立 Web 管理站点

新增独立管理站点 http://127.0.0.1:3097,只监听本机,不需要经过 DSH 设置页就能完成日常管理;DSH 里的「QQ 框架」页提供同一套管理入口(主题跟随 DSH),并加了「独立管理站点」入口。

- 登录安全:首次打开设置管理密码(至少 10 位),scrypt 哈希保存到 data/dsh-onebot-bridge/admin/admin.json;会话 12 小时绝对过期、30 分钟无操作过期,HttpOnly + SameSite=Strict Cookie;所有写操作要求会话内 CSRF 令牌;登录每 IP 15 分钟最多 5 次失败;校验 Host 与 Origin,防 DNS rebinding 与跨站提交;严格 CSP、请求体上限、只监听 127.0.0.1。
- 页面:总览(在线状态、主人、动作、包、最近事件、诊断)、连接(OneBot 地址/Token/模型,测试连接)、聊天(范围、群参与方式、分条与预算)、监听(私聊/群/通知/请求)、权限(主人、逐项动作授权、只读特殊范围)、插件(内置包、原生包、声明式扩展的启停/范围/配置)、日志(运行日志、权限审计)、安全(改密码、会话说明)。
- 安全边界:管理站点只转发白名单内的桥接动作,不暴露 invokeAction、媒体上传、原始网关调用与任意代码执行;没有设置密码前任何人都只能看到设置页,设置后必须登录。
- 反向代理:要在手机或局域网访问,请在前面加 HTTPS 反向代理并保留 Host/Origin 校验;默认不要直接把 3097 暴露到公网。

DSH 页与独立站点共用状态与权限,改任一处另一处刷新即可见。管理站点启动失败只记日志,不影响 QQ 桥接。

管理站点采用「夜航控制台」视觉:暖墨底与灯火色、等宽字承载数据、衬线斜体只做点缀;桌面、窄屏和明暗主题分别排版。所有图形由 CSS 与内联 SVG 绘制,没有外部字体、图片或脚本,仍符合严格 CSP。

参考与致谢

这个框架没有从零发明协议和生态,很多设计是在下面这些项目的基础上学的。只参考协议、思路与公开文档,代码全部独立实现,没有拷贝它们的源码或提示词。

- OneBot 11 标准 —— 消息/事件模型、戳一戳等通知语义的权威定义。
- NapCatQQ —— 我们实际对接的 QQ 协议实现,OneBot 服务端的能力边界以它为准。
- DeepSeek Harness —— 运行平台:Agent、Session、工具守卫与压缩能力都由它提供。
- Cordis(随 DSH 提供的插件与依赖注入框架)—— 本插件以 Cordis 行接入 DSH。
- qq-bridge(Derpyu520) —— 注意力窗口、等待与未读管理、参与调度的思路来源;本项目的续聊与参与判断是独立实现。
- AstrBot —— 唤醒检查(是否该接话)的思路参考。
- astrbot_plugin_qzone_ultra —— QQ 空间接口用法的参考。
- Node.js HTTPS / DNS 文档 —— 联网查资料插件的出站请求与 DNS 校验实现依据。

感谢这些项目的作者和维护者把工作公开出来。如果这里有遗漏的致谢,欢迎提 issue 指正。

许可

MIT,见 LICENSE。
预览分享卡片长什么样 ↓haotianshouwang/dsh-onebot-bridge
分享 · DeepSeek Harness Hub
haotianshouwang/dsh-onebot-bridge

把 QQ 消息接入智能体,支持群聊与权限管理

回到顶部