前言¶
DeepSeek Harness(DSH)支持以插件形式扩展行为与界面。已有一些 QQ 机器人插件,但大多停留在消息转发或简单应答。如果想让 AI 在 QQ 里拥有人格、记忆和长期互动能力,需要一套更完整的会话与工具管理机制。
Aurabot 是 DeepSeek Harness 的一个插件,它通过 SnowLuma / OneBot v11 把 DSH 的会话接入 QQ,让 AI 以独立 QQ 号「大肥鱼」的身份驻留在 QQ 里。本文介绍它的安装方式、配置要点和核心能力。
插件定位¶
- 插件名称:accomplish07zrh-eng/dsh-aurabot-qq
- 维护者:accomplish07zrh-eng
- 分类:客户端
- 作用:将 DSH 会话映射到 QQ 私聊或群聊,让 AI 在 QQ 中拥有独立身份、人格、记忆和工具能力。
安装¶
需要:Windows、DeepSeek Harness 桌面版、一个用来当机器人的 QQ 小号。
在 PowerShell 中执行以下命令(来自官方 README):
& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add github:accomplish07zrh-eng/dsh-aurabot-qq
安装完成后重启 DSH,在左侧栏「自动化任务」下找到 Aurabot,按设置向导填写:
- 机器人 QQ 号(小号)和你的 QQ 号
- 下载并解压 SnowLuma
- 启动 SnowLuma,在控制台同意其协议(协议密码自动生成)
- 登录机器人号,点击「接入机器人号」
- 在 Aurabot 面板里选择「试运行」或直接「上线」
升级¶
升级时再次运行相同的安装命令(拉取 GitHub 上的最新版),然后重启 DSH。设置、人格、记忆都会保留;面板会在有新版本时提示。
& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add github:accomplish07zrh-eng/dsh-aurabot-qq
功能概览¶
会话与人格¶
- 每个 QQ 私聊或群对应一个 DSH 会话,显示在左侧栏的「Aurabot · QQ」工作区中。
- 面板用标签页分功能:概览、连接、人格、权限、群聊、模型、语音、表情包、空间日记、主动搭话、心情与记忆、翻唱、日志。
- 插件自带两个 agent preset:
aurabot-private(主人私聊,完整工具)和aurabot-social(群聊和其他人私聊,不使用本地工具)。 - 人格通过
@deepseek-ai/dsh-persona注入到系统提示词最前,文本来自插件注册的提示词变量{{aurabot_persona}},切换人格无需重建 preset。
心情与记忆¶
- 每轮变化的内容(心情、记忆)通过
agent.ctx.systemPrompt.context()追加在对话末尾,不破坏前缀缓存。 - 心情与记忆数据存储在
%USERPROFILE%\.dsh\plugins-data\aurabot\目录下,重装插件不会丢失。
上下文与工具¶
- 群聊上下文直接将发言人和群内刚才在聊的内容写入交给 AI 的消息里。
- 工具按会话注册(
agent.ctx.tools.register),只出现在 Aurabot 的会话中。 - 群管工具会校验:本轮有主人下令、对象不是主人、该会话在群里有管理权限。
- 点歌、生图等工具校验「本轮说话的人全是主人」,不只依赖人格约束。
语音与 ASR¶
- TTS 使用
edge-tts(安装在插件自己的 Python 虚拟环境中),也可以接本地的 CosyVoice、GPT-SoVITS。 - 当本地 TTS 不可用时,使用 Windows 自带中文语音兜底。
- 管线中预留了 RVC 变声插槽。
- ASR 先用 QQ 自带的语音转文字(
fetch_ptt_text),再尝试 DSH 的speechToText。
表情包¶
- 只接收真正的表情(
sub_type=1、mface、带emoji_id的),随后通过尺寸、宽高比、体积、MD5 去重,并设置每小时限额。 - 收下后调用
add_custom_face,视觉模型起备注后调用modify_custom_face。
空间日记¶
- 使用
send_qzone_msg工具在专用的后台会话里写日记,结合当天聊天流水。 - 该轮不转发到聊天窗口。
翻唱¶
- 插件只预留了
qq_song_cover工具、面板标签和变声插槽,具体实现依赖外部组件。
安全与默认行为¶
- 总开关默认关闭,试运行默认开启。不手动打开,AI 不会向 QQ 发送消息。
- QQ 网关使用 SnowLuma 的 OneBot v11:WebSocket 接收事件,HTTP 调用接口。
- 插件从 SnowLuma 配置文件自动读取端口和令牌。
- SnowLuma 的 EULA 第 5.4 条不允许「通过自动化脚本部署」,因此插件不下载 SnowLuma,也不代为同意协议。协议全文在面板中显示,由用户本人勾选同意。
- 插件只启停用户已安装的 SnowLuma(后台运行,不弹窗口)。
- 第一次启动时通过
SNOWLUMA_WEBUI_BOOTSTRAP_PASSWORD设置一个自己生成的控制台密码。 - 启动前通过
/api/processes核对每个 QQ 进程登录的账号,只注入机器人号。 hookAutoLoad永远关闭。
代码结构¶
src/host.js 插件入口(宿主半边)+ 面板接口 /aurabot/api/*
src/chat/ 消息中枢、群聊策略、回复解析、白名单与权限
src/onebot/client.js OneBot v11 客户端(HTTP + WS,自动重连)
src/snowluma/ SnowLuma 管理(检测、启停、只注入机器人号)
src/features/ 表情包、空间日记、心情、记忆、主动搭话、翻唱(预留)
src/voice/tts.js 文字转语音
src/tools/tools.js 挂给会话的工具
src/persona/ 人格卡与规则
client/client.js 网页半边:侧栏入口 + 面板
personas/dafeiyu.md 默认人格「大肥鱼」
cordis.patch.yml 插件与两个 preset 的挂载声明
test/ 单元测试 + 端到端测试(假 DSH 宿主 + 模拟 OneBot)
测试¶
在项目根目录执行:
npm test
适用场景与注意¶
- 适合希望在 QQ 中拥有长期对话、人格与记忆的 DSH 用户。
- 插件以当前 DSH 进程的权限运行,安装前建议阅读源码与许可证(MIT)。
- 使用前应确保已安装 SnowLuma 并同意其协议,并在面板中勾选同意。
小结¶
Aurabot 通过 SnowLuma / OneBot v11 将 DSH 会话映射到 QQ,让 AI 以独立身份驻留 QQ,具备人格、记忆、表情包处理、语音与空间日记等能力。总开关与试运行机制降低了误发风险。如需在 QQ 中体验长期陪伴式 AI,可以参考本文的安装与配置步骤。
- 目录页:https://www.skillhub.cn/plugins/accomplish07zrh-eng/dsh-aurabot-qq
- GitHub:https://github.com/accomplish07zrh-eng/dsh-aurabot-qq