Aurabot:让 AI 以「大肥鱼」的身份住进 QQ

前言

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,按设置向导填写:

  1. 机器人 QQ 号(小号)和你的 QQ 号
  2. 下载并解压 SnowLuma
  3. 启动 SnowLuma,在控制台同意其协议(协议密码自动生成)
  4. 登录机器人号,点击「接入机器人号」
  5. 在 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye