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

QQ 伙伴 sidifeng/dsh-companion

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

为 QQ 官方机器人接入记忆、识图与语音能力

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sidifeng/dsh-companion
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 5 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 19 处,展示前 19 条)
  • 读取本地文件
    src/upstream.js:11
    const manifest = JSON.parse(readFileSync(file, 'utf8'));
  • 写入本地文件
    src/autonomy-store.js:9
    if (file !== ':memory:') mkdirSync(dirname(file), { recursive: true });
  • 写入本地文件
    src/bilibili.js:60
    signal?.throwIfAborted(); await mkdir(directory, { recursive: true });
  • 写入本地文件
    src/bilibili.js:61
    const localPath = join(directory, `${randomUUID()}.video`); await writeFile(localPath, data);
  • 发起网络请求
    src/gateway.js:146
    const result = await bot.apiClient.request(token, 'GET', `/v2/groups/${encodeURIComponent(target)}/bot_state`, undefined, { timeoutMs: 10000 });
  • 写入本地文件
    src/media.js:66
    await mkdir(directory, { recursive: true });
  • 写入本地文件
    src/media.js:68
    await writeFile(localPath, data);
  • 写入本地文件
    src/singing.js:78
    bounded.throwIfAborted(); await mkdir(directory, { recursive: true });
  • 写入本地文件
    src/singing.js:81
    await writeFile(raw, wav);
  • 读取本地文件
    src/singing.js:85
    const silk = await encode(await readFile(mono), 0);
  • 写入本地文件
    src/singing.js:88
    const localPath = join(directory, `${randomUUID()}.silk`); await writeFile(localPath, silk.data);
  • 删除本地文件
    src/singing.js:90
    } finally { await Promise.allSettled([unlink(raw), unlink(mono)]); }
  • 写入本地文件
    src/store.js:10
    if (file !== ':memory:') mkdirSync(dirname(file), { recursive: true });
  • 写入本地文件
    src/video.js:9
    await mkdir(directory, { recursive: true });
  • 读取本地文件
    src/video.js:32
    for (const entry of await readdir(directory, { withFileTypes: true }).catch(() => [])) {
  • 读取本地文件
    src/video.js:36
    const info = await stat(file).catch(() => null);
  • 删除本地文件
    src/video.js:37
    if (info && now - info.mtimeMs > ttlHours * 3600000) await unlink(file).catch(() => {});
  • 写入本地文件
    src/voice.js:29
    await mkdir(directory, { recursive: true });
  • 写入本地文件
    src/voice.js:30
    const file = join(directory, `${randomUUID()}.silk`); await writeFile(file, silk.data);
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-plugin-market-index@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-session
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

QQ 官方机器人专用的 DeepSeek Harness 伙伴插件:独立记忆、图片、视频抽帧、本地语音

README

由 DeepSeek 最新模型翻译生成
DSH Companion 专门服务于 QQ 官方机器人的 DeepSeek Harness 插件。默认是自然、温和的朋友,不固定名字。使用官方 AppID/AppSecret,不登录个人 QQ,不依赖 OneBot。 当前为 0.7.0-alpha.1 预览版,面向 DSH 0.2.1-rc.2、Node.js >=22.13。安装时默认关闭,配置并停用旧 QQ 接入后启用。不是腾讯或 DeepSeek 官方产品。 能力与验证范围 | 能力 | 当前实现 | | 私聊、群聊 | 官方 WebSocket;仅 OpenID 白名单,群聊默认需要 @;真实收发已验证 | | 连续短消息 | 默认最多 3 个气泡、间隔 1.2 秒;群聊两个独立气泡已验证 | | 聊天节奏与表达 | 同人连续普通文本短暂合并,未发送的旧轮次可被明确更正替代;参考最近成功发出的表达,减少重复开头、连续追问和机械收尾 | | 图片 | 本轮附件交给已配置的视觉模型;QQ 私聊识图已验证 | | 长期记忆 | SQLite 持久化,明确保存、自动整理、更正、删除和关闭自动记忆;QQ 自动整理已验证 | | 长期经历与画像 | 原有计划关联 S 编号时间线,串联计划、进展和结果;画像区分近期表达、多日确认和偏好变化,支持查询、更正和删除 |
展开完整文档(README 剩余 1 节)
DSH Companion

专门服务于 QQ 官方机器人的 DeepSeek Harness 插件。默认是自然、温和的朋友,不固定名字。使用官方 AppID/AppSecret,不登录个人 QQ,不依赖 OneBot。

当前为 0.7.0-alpha.1 预览版,面向 DSH 0.2.1-rc.2、Node.js >=22.13。安装时默认关闭,配置并停用旧 QQ 接入后启用。不是腾讯或 DeepSeek 官方产品。

能力与验证范围

| 能力 | 当前实现 |
| 私聊、群聊 | 官方 WebSocket;仅 OpenID 白名单,群聊默认需要 @;真实收发已验证 |
| 连续短消息 | 默认最多 3 个气泡、间隔 1.2 秒;群聊两个独立气泡已验证 |
| 聊天节奏与表达 | 同人连续普通文本短暂合并,未发送的旧轮次可被明确更正替代;参考最近成功发出的表达,减少重复开头、连续追问和机械收尾 |
| 图片 | 本轮附件交给已配置的视觉模型;QQ 私聊识图已验证 |
| 长期记忆 | SQLite 持久化,明确保存、自动整理、更正、删除和关闭自动记忆;QQ 自动整理已验证 |
| 长期经历与画像 | 原有计划关联 S 编号时间线,串联计划、进展和结果;画像区分近期表达、多日确认和偏好变化,支持查询、更正和删除 |
| 自主兴趣与观点 | 从实际抽帧证据逐步积累兴趣,影响原有预算内的选题;不同视频的跨日证据才允许改变已有观点 |
| 人物关系与生物层 | 按人和场景分别积累熟悉、信任、亲近、冲突与修复;情绪惯性、余波、压力恢复和有界负荷;不因缺席、拒绝或隐私披露改变信任 |
| 群话题 | 在 QQ 实际投递的群消息范围内,区分发言者、保留近期原文、整理有来源的话题摘要,供被动回复和主动聊天使用;非 @ 消息不会立即触发回复 |
| 语义记忆 | 本机多语种 384 维向量,按人和场景隔离后检索;支持跨措辞召回,旧记忆逐步补索引;删除、更正同步使旧索引失效 |
| 旧事回访 | 记录有原文依据的未完成计划,适时提供一次回访机会;支持完成、取消、过期和关闭;私聊仍只在用户来聊时回访 |
| 视频 | FFmpeg 抽取最多 3 个时间点,再调用视觉模型;默认仅前 180 秒。QQ 视频描述已验证;不分析音轨,不代表连续观看 |
| 语音 | 本机 WAV 转 QQ SILK 后发送;QQ 私聊接收和播放已验证 |
| B站 | 热门、BV 标题/简介、公开字幕、公开短视频画面抽样;限 180 秒/25 MB、无需登录付费的单段 MP4。QQ 画面描述已获用户确认 |
| 唱歌 | 本机 ACE-Step.cpp 音乐规划模型生成音频编码,再合成原创中文短歌并转 SILK 发送;默认 30 秒。RX 6800 XT 约 16 秒生成 29 秒样本;用户已确认新版 QQ 语音能正常播放、听清唱词 |
| 自主浏览 | 后台从公开热门列表挑选未看过的短视频,抽帧、记录所见和感想;每两小时一次、每天最多七次尝试;真实单次浏览及 QQ 动态展示已获用户确认,尚无连续多日运行数据 |
| 主动聊天 | 独立官方主动消息,不借用旧消息 ID;按时区、安静时段、间隔、每日预算和平台权限决定是否发送。定时群主动已获用户确认;默认关闭,管理员配置后启用 |

自主浏览限公开短视频画面抽样,不登录 B站账号,不点赞、评论或关注;完整音视频理解尚未完成,唱歌限短片段。自主活动依赖宿主持续运行,不会在电脑关机时工作。

经历、人物画像与自主兴趣

0.7.0-alpha.2 修复整理字段被模型省略后无记录的问题。普通近期活动也能形成经历;简短进展会参考本人的已有事件和近期话题,但仍须当前原文证据。格式或证据有问题时最多重试一次,失败会在查询中明确提示。记忆整理总时限 60 秒,正常聊天回复先发出,后续消息按原有队列处理。

管理员私聊 /整理兴趣 可以补齐最近最多两条尚未成功整理的已有浏览画面,不重新下载视频、不增加浏览次数或主动推送。明确没有合适感想时允许不形成观点。/兴趣重置 后不会借此恢复已清除的旧观点。

- /经历 查看当前人与场景的近期经历;/经历 S1 查看一件事的计划、进展和结果。同一件事后续有明确进展时更新原编号。完成/取消会关闭关联回访;仅停止回访不等于取消事情。显示日期是收到并记录消息的日期,事件实际发生日期以原文为准。时间线最多保留最初一条及最近 31 条变化,聊天提示使用有界片段,语义检索可以找回旧经历。
- /画像 查看自己明确说过的兴趣、偏好、称呼、交流方式和边界。跨至少 3 个不同日期明确表达才标为多日确认;新偏好替代旧偏好时,确认度重新计算,保留最近变化供核对。不从短时情绪推断性格,不跨群/私聊猜测身份,也不把模型建议记成用户执行过的事情。
- /纠正 S1 新内容 替换这段经历的旧时间线;/忘记 S1 删除经历及关联回访。反过来更正/删除关联的 E 编号,也同步更新经历与向量。/忘记 F1 同时删除该画像项的确认与变化记录。/忘记全部 覆盖所有本人的经历、画像和旧记忆。关闭自动记忆会暂停新积累。
- /兴趣 查看机器人基于公开浏览逐步积累的主题;/观点 猫 查看当前看法、画面依据和 BV 来源。初次记录明确标注初步感想。兴趣每个主题每天最多变化 0.04,范围 0.15–0.85;同一 BV 不重复计数。改变已有观点至少需要两个不同 BV、跨两个日期支持同一个候选看法,并保留最近三次变化依据。它们是主观看法,不是从几帧画面证明出的客观结论。
- 选视频会结合配置兴趣与积累关键词,每四次既有浏览机会探索较少匹配的候选;不会增加浏览次数或主动发言。公开兴趣不读取任何用户的私聊画像。管理员私聊 /兴趣重置 可清空兴趣与观点,保留原浏览记录、发送预算与设置,迟到的整理不会恢复已重置的观点。

记忆库升级到 Schema 5,自主库升级到 Schema 2;升级前分别生成一致性备份。既有事实用于初始化画像依据,既有回访仅还原有记录的计划,不伪造旧结果;旧视频记录保留,但不会凭标题补造观点。新增内容沿用既有整理调用,记忆整理输出上限由 2400 提升至 3600 tokens,可能增加少量用量;不新增模型或依赖。新数据结构不能直接用旧插件读取,回退需配套恢复升级前数据库备份。

人物画像和时间线的自动提取仍可能误判,可以用上述命令核对和纠正。多日关系、兴趣和观点变化的自然度还需要长期实际使用验证。

安装与更新

源码:sidifeng/dsh-companion。

已安装 dshmarket 的用户

可先在宿主「插件 → 添加插件」中填入 github:sidifeng/dsh-companion,或使用官方命令:

text
npx @deepseek-ai/dsh plugin --profile web add github:sidifeng/dsh-companion

保留 GitHub 来源后,进入「插件市场 → 已安装」检查更新,点击本插件的更新按钮。dshmarket 会比较 GitHub 上的版本/提交。link: 本地开发目录不支持在线更新,必须先切换到 GitHub 来源。安装代码是原生 ESM,无须运行安装构建脚本。

发现页搜索使用社区目录,需先通过收录审核;本仓库刚创建,按目录要求满一天后才能提交。准备好的条目在 catalog/sidifeng__dsh-companion.yml。没有被收录之前,不能承诺默认发现页已能搜索到。

使用 DSH 官方 format 1 索引的用户

在支持自定义索引来源的官方插件发现页添加: text https://raw.githubusercontent.com/sidifeng/dsh-companion/market-index/index.json

刷新来源,搜索 dsh-companion,选择版本安装。此来源属于官方 format 1 格式,不能直接作为 dshmarket 的社区目录。 上传 GitHub 不等于自动进入默认市场。

每版固定指向完整 Git 提交 SHA。保留这个索引来源,新版发布后刷新市场并选择新版更新。数据库放在独立数据目录,不随代码更新覆盖。

维护者修改代码后,提高 package.json 和锁文件中的版本号(例如 npm version 0.4.0-alpha.2 --no-git-tag-version),更新 RELEASE_NOTES.md,提交并推送 main。Actions 在 Windows/Linux 检查通过后自动更新 market-index 分支并创建预览 Release。只上传代码、不提高版本号,不会覆盖已经发布的版本。工作流使用 GitHub 短期令牌,无需上传 QQ 密钥。

配置

1. 停用原 im-qqbot、个人 QQ 桥接和其他重复回复入口,保留备份。
2. 在本机填写 AppID/AppSecret、DeepSeek provider/model 和测试 OpenID 白名单。数字 QQ 号、群号不能代替 OpenID;私聊与群聊身份不做推测性合并。
3. companion.dataDir 指向稳定数据目录;视觉使用 vision.enabled/provider/model,需要实际支持图片的模型。
4. 启用 enabled,先验收白名单范围。

新增配置字段示例: yaml companion: persona: 自然、温和的朋友,没有固定名字。没有依据时不假装记得。
autoMemory: true
maxMessages: 3
intervalMs: 1200
burstWindowMs: 800
turnTimeoutMs: 120000
voice:
enabled: false
baseUrl: http://127.0.0.1:8765
voice: huayan
maxChars: 120
video:
enabled: true
ffmpegPath: ffmpeg
frames: 3
maxSeconds: 180
bilibili:
enabled: true
singing:
enabled: false
baseUrl: http://127.0.0.1:8085
synthModel: acestep-v15-turbo-Q8_0.gguf
lmModel: acestep-5Hz-lm-0.6B-Q8_0.gguf
maxSeconds: 30
timeoutMs: 105000

语音是独立的本机服务,不随插件打包。兼容接口:POST /v1/speak/file 接收 {text,voice,format:"wav",sr:24000,cache:true},返回 WAV 字节。只接受 loopback 地址;服务未启动时如实报错。单段最多 60 秒。视频需要另装 FFmpeg 或填写可执行文件绝对路径。

聊天节奏

普通文本默认等待 800 毫秒,让同一个人把短句说完;连续等待最多 2 秒、最多 6 条且合计不超过 2400 字。只有已通过白名单与群 @ 检查的消息才能触发合并。群内其他人插话、命令、附件和引用形成边界;不会把不同人的话合成同一个人的记忆。companion.burstWindowMs: 0 可关闭合并与自动更正替代。

模型正在准备或生成、尚未尝试发送且尚未调用工具时,开头 2 秒内的补充或 30 秒内以“说错了”“更正一下”等开头的明确更正,可取消旧轮次并带原文重新理解。后来的普通新话题仍排队;正在读图、看视频、发语音、唱歌的任务不会因此被误取消。已经发出的内容无法撤回,需要主动停止任务可用 /取消,也会清理本人排队中的任务。

每组合并只使用最新真实入站消息的回复额度,保持默认最多 3 个气泡和 1.2 秒间隔。表达参考只保存本人与当前场景最近半小时成功发出的少量回复,留在内存,重启清空,忘记/更正记忆时清除;不会作为新的长期事实。模型会收到少寒暄、贴合上下文、适时短答、自然结束且不连续追问的指导,明确的条数与详细解释要求仍优先。自然度依赖实际模型表达,需要持续交流观察。

这些优化不改变主动聊天、安静时段或 B站浏览预算,不增加模型调用或依赖,不修改数据库结构。

自主聊天与浏览

以下是仅向白名单群主动发言的示例;启用前填写管理员的官方私聊 OpenID。私聊主动发送默认关闭,也不能用聊天命令打开。
yaml
autonomy:
enabled: true
groupEnabled: true
privateEnabled: false
browseEnabled: true
operatorIds: [] # 填本机管理员的官方私聊 OpenID,不填数字 QQ 号
timezone: Asia/Shanghai
quietStart: 23
quietEnd: 9
chatIntervalMinutes: 30
groupDaily: 28
privateDaily: 0
idleMinutes: 3
browseIntervalMinutes: 120
browseDaily: 7
interests: 猫、生活、科普、音乐每半小时给一次群主动聊天的机会,最多发一条短消息;群内三分钟内有消息、正在回复、没有新话题或处于安静时段时跳过。没有新视频时可以聊普通兴趣话题;有值得分享的真实画面记录时,可以分享这段经历,并附上 BV 号。群主动生成不读取任何人的私聊记忆。最近的主动消息会进入该群的聊天上下文,用户追问时能接上。

浏览每两小时挑选一个未看过且符合时长限制的视频,下载成功并经视觉模型观察后才记录所见。每天最多七次尝试,包括失败;手动测试也计入每日浏览预算。点播看过的视频同样参与去重。历史版本未建立统一浏览记录,不自动猜测或重建旧观看历史。

主动发送使用 QQ 官方不带 msg_id 的消息接口。先查询群内 allow_proactive_msg;接口不可用时以真实发送结果为准,平台拒收或群内关闭主动推送后会暂停该目标,管理员处理后再用 /群主动 开 恢复。具体权限与额度以 官方群消息文档、单聊消息文档 为准。发送不确定不重试,也不会伪装成被动回复或绕过群开关。

autonomy.sqlite 单独保存公开浏览经历、目标活动时间、开关和主动发送账本。限额和间隔在调用前持久化;重启不重发未确认消息,不补发停机期间积压。关闭开关会取消生成,但已经提交网络的消息无法撤回。后台模型调用使用当前 DeepSeek/视觉服务,不属于免费离线模型。

群话题、语义记忆与回访

群话题默认开启,dialogue.retentionHours: 24、dialogue.maxMessages: 120。只处理已允许群里 QQ 实际投递的消息,不能取得未授权的历史或平台未投递的非 @ 消息。原文仅保留近期窗口,区分说话人;摘要在需要回复或主动发言时按最新消息生成,要求原文引用。群消息和摘要会交给现有 DeepSeek 服务理解;本机 dialogue.sqlite 不与私聊混用。非 @ 消息只进入上下文,仍按原有 @ 规则回应。管理员私聊可用 /群话题 开、/群话题 关、/群话题 清空 管理当前唯一测试群;群内 @ 后 /群话题 查看。

语义模型使用 Xenova/paraphrase-multilingual-MiniLM-L12-v2 固定提交 2c4055b12046f11709e9df2c122e59ffbdc2f900,Q8 权重与分词器约 135 MB。CPU 工作线程计算向量,不占用唱歌的 Vulkan GPU;聊天内容不发送给模型下载站。模型需先下载,运行时严格只读本机模型: powershell

在插件包目录运行;路径换成自己的固定数据目录

node scripts/prepare-semantic.mjs "D:\companion-data\models"

随后配置 semantic.enabled: true 和 semantic.modelDir: D:\companion-data\models。未设置 modelDir 时默认 dataDir/models。相关性阈值默认 0.38;模型缺失或失败时退回文字匹配,/记忆状态 会显示退化状态。向量索引保存在记忆库,首次升级按每次最多 32 条分批补齐,并在空闲时继续补索引;索引建立后全库当前用户资料都参与相似度排序,不限于最近 200 条。/找记忆 问题 可检查跨措辞召回。相似度不代表事实真伪,模型回答仍需遵循原文和时间。

Windows x64 本机已验证不需要执行 onnxruntime-node 或 protobufjs 的安装脚本。pnpm 11 的市场安装若提示这两个脚本未审阅,可先备份当前 profile 的 pnpm-workspace.yaml,将下列内容合并进已有配置,再点击插件更新;这是明确禁止这两个依赖的安装脚本,不是放行构建。不要覆盖其他已有设置: yaml allowBuilds: onnxruntime-node: false protobufjs: false

回访只记录本人明确说过的普通生活计划;群主动回访仅使用本群明确说「我们/大家」的共同安排,个人计划只在本人来聊天时提供机会。最早半小时后、最晚未来 30 天安排,过期七天不再问;每人每天最多一次机会、每件事只给一次,没回应不反复催。群共同回访也限制每天最多一次,合并进原有半小时主动预算,遵守安静时段。生成时不适合提起可以跳过,因此它不是保证准时送达的提醒器。非 @ 消息中的共同计划可在话题整理时保存;原提议者明确取消或完成后关闭,不让别人的一句话修改个人事项。

/待回访 查看,/旧事回访 关 暂停本人当前场景,/结束回访 E1 结束一项;/忘记 E1 删除事件记忆。更正事件后关闭其旧回访时间,避免把新内容套到旧日程。关闭自动记忆也停止新的计划整理与回访。

长期关系与稳定情绪(生物层)

设计参考 JOHNHIM 的《如何通过模拟生物到让大肥鱼拥有真心与自我》第三章中用户提供的六个循环说明,独立实现;没有使用作者未提供的代码、八大循环或 34 个小环,也不把文章中的比喻当作科学事实。

三层分工:DeepSeek 评价当前事件并给出连续原文证据;L1 纯函数只接收校验后的事件,计算数值;L2 将状态转成温和的表达约束。模型不能直接设置信任数值,表达不能反写状态。未通过评价或超时就保留原状态,继续正常聊天。

| 文章思路 | 本插件实现 |
| 余温 | 0.75/0.25 情绪惯性;短时情绪约 3 小时、余波约 8 小时半衰期;强刺激后有轻微反向回落 |
| 心动 | 评价区分对机器人的态度与用户自己的心情;选择自然、倾听、留空间或修复等表达策略;明确反馈可影响同类策略排序 |
| 压痕 | 压力恢复约 2–3.2 小时,负荷恢复约 72 小时;负荷和压力有上限,恢复永不停止,不把疲惫变成冷落或拒绝帮助 |
| 牵挂 | 熟悉、信任、亲近独立缓慢累积,冲突较快、修复可降低冲突;缺席不扣分,不用「想念」催用户回来 |
| 追忆 | 只让本轮真实召回且原文带情绪的记忆产生最多 ±0.04 的临时表达偏移;不反写长期情绪、不改变事实、不压制不合意记忆 |
| 入心 | biology.adaptive 默认关闭;开启后同类明确反馈至少 8 次、跨至少 3 个反馈日,参数每天最多一步、单步最多 0.01、范围 0.35–0.65 |

这些参数是本项目的保守工程默认值,不是经科学测定的心理模型。每人每场景隔离:群里某人的冲突不迁怒其他人,也不把私聊关系注入群主动话题。全局基础人格保持稳定。

关系增长每 30 分钟最多一次,熟悉度每日最多 2/100,信任每日绝对变化最多 1.2/100,亲近每日最多 1.6/100;单次变化远低于每日上限。情绪刺激每 5 分钟最多一次、每日最多 12 次;24 小时内相同证据去重。普通低落、拒绝、纠错和边界不扣信任,兑现约定必须有此前的计划编号与当前证据。历史熟悉度保留,不从旧熟悉度虚构高信任。时间推进按时间戳计算,停机后恢复不补发消息。

biology.enabled 默认开启。每次正常被动对话在回复前最多多调用一次现有 DeepSeek 服务,评价超时为 10 秒,可能增加延迟和用量;近期候选记忆也会供该服务理解。非 @ 群消息不单独评价关系,不给每条背景消息增加模型调用。/自动记忆 关 同时暂停积累和状态注入。

- /关系:查看当前人与当前场景的熟悉、信任和亲近。
- /情绪 或 /生物层:查看模拟状态、近期依据类别及调参状态。
- /生物层 关、/生物层 开:只控制本人当前场景。
- /生物层 重置:重置关系、情绪和事件依据,保留长期记忆。
- /忘记全部:同时清除本人当前场景的记忆和生物层状态;关闭状态保持。

事件依据最多保存每人 500 条/90 天,供去重和本机核查。聊天时不把原文事件日志再次灌入模型,只提供表达状态。常规更正或删除单条记忆不会重算过去关系;需要撤销关系积累时可重置生物层。算法时间推进、迁移、取消和隔离由自动测试验证,数周到数月的相处自然度仍需真实使用观察。

本地唱歌服务

使用 ACE-Step.cpp 的 Vulkan 后端;本机验证版本为 de858d8 (2026-10-16)。按上游 README 获取 Windows 程序及 Vulkan/CPU DLL,在独立模型目录放入 GGUF 模型中的 Qwen3-Embedding-0.6B-Q8_0.gguf、acestep-v15-turbo-Q8_0.gguf、vae-BF16.gguf、acestep-5Hz-lm-0.6B-Q8_0.gguf,共约 4.38 GB。下载后对照模型仓库 SHA256 校验。歌词由 DeepSeek 创作;本机 /lm 负责生成音乐音频编码,随后 /synth 合成声音。alpha.3 只用直接扩散,实测出现伴奏或无词哼唱;升级后需补充 LM 文件,不能把能播放音频视为唱词已通过。

在程序目录启动,替换模型目录为自己的绝对路径: powershell .\ace-server.exe --host 127.0.0.1 --port 8085 --models "D:\models\ace-step" --device Vulkan0 --max-batch 1

确认 /health 正常、/props 列出的模型名与配置一致,再启用 singing.enabled;video.ffmpegPath 同时用于歌声转码。引擎只绑定本机,一次生成一段;取消或超时会请求终止原生任务。生成时间取决于硬件和片段长度,语音消息会压缩音质,歌词发音与音乐质量仍由生成模型决定。它不会承诺翻唱整首歌曲。模型、程序和音频不进入 GitHub 发布包。

聊天命令

- 记住:我喜欢橘猫 或 /记住 内容:明确保存。
- /记忆:列出记忆及 M1、F1 等编号。
- /纠正 F1 新内容、/忘记 F1、/忘记全部:只修改本人当前场景资料,并切换到新上下文。
- /自动记忆 关 或 /自动记忆 开;/关系、/情绪、/生物层 开或关或重置;/帮助。
- /语音 你好,今天过得怎么样:生成并发送语音。
- /唱歌 给我唱一段关于晚风和星光的原创短歌:启用本地引擎后生成短歌。
- /回传附件:回传本轮图片/视频,用于权限验收。
- /取消:取消本人正在处理的任务;已发出的消息不能撤回。
- /自主动态:查看最近的公开浏览记录和感想。
- 管理员私聊:/自主状态、/自主浏览 开或关、/群主动 开或关。
- 管理员私聊:/刷B站一次(跳过两小时间隔,仍计入每日预算)、/主动试聊(仍遵守安静时段和主动发送预算)。

也可自然地请求看图、描述短视频、发语音或读取 B站公开资料。

记忆与数据

按 AppID、场景、目标和发送者隔离记忆与模型上下文。自动整理每轮额外调用一次 DeepSeek,格式不完整时最多重试一次,最多 5 条事实和一项计划,要求当前原文证据与本人归属;仍可能误记,可查看、更正和删除。不把模型回复当作用户经历。语义检索先过滤所有权,再从已建立索引的资料选出最多 6 条;文字降级检索使用近期有界候选。

发布前运行 node scripts/privacy-check.mjs --staged。如需比对本机已知密钥和账号标识,可用 --known-values 本机JSON数组文件;该清单必须保存在被忽略的本机目录,不能提交。--history 检查本地全部 Git 引用可达的历史。CI 也检查常见凭据、B站 Cookie 和运行文件。扫描只输出文件名和规则名;不能替代人工审查,也不能证明外部缓存或旧克隆已经删除。生产配置、聊天数据库、模型和诊断文件均不应进入仓库。

关系状态只控制表达,不奖励隐私披露。自动记忆开启时每 24 次已整理交流换一段上下文,靠长期记忆延续资料;关闭后不产生新事实和关系评分。

长期关系与稳定情绪已具备有界、可重置的工程实现,尚无多周实测,也不自动合并跨场景身份。语义记忆、群话题、回访和生物层增加聊天连续性,但不代表具有意识或真人式情感;也未完成入站语音转写、视频音轨理解、可控情绪语音或无人值守的开机启动。实际自然度仍需长期使用验证。

默认目录为 $DSH_HOME/companion/<AppID哈希>/memory.sqlite,未设置 DSH_HOME 时用 ~/.dsh。当前 Schema 4,升级前自动创建一致性备份;旧代码不能直接读取更高 schema,回退需停止宿主并恢复对应备份。

忘记命令删除本插件的活动记忆及相关修订记录,旧会话不再作为当前上下文使用;不删除 DSH 历史日志、备份或已发送的 QQ 消息。备份含历史记忆,由设备所有者管理。
媒体保存在数据目录 media/,启动时清理一次,之后每小时清理超过 24 小时的自有 UUID 文件。下载限制大小、超时和公网地址,禁止重定向。QQ 工具只能读本轮附件,不能调用宿主终端或任意文件工具。

发送次数和序号持久化,文字与媒体共用预算。发送结果不确定时不重发,被动窗口过期不转主动消息。取消能阻止后续发送,已提交网络的请求可能已经送达。

开发与启动 powershell
npm ci --ignore-scripts
npm run check
npm test
npm run demo

腾讯内部接口集中在 src/upstream.js,锁定 0.5.3;升级需重新验收。DSH_TEST_HOST_PACKAGE 配合 node --import ./scripts/use-host.mjs --test 可使用实际宿主模块验证。自动测试中的 QQ/模型是模拟对象,不代表账号权限已通过。

正常启动:npx @deepseek-ai/dsh web。源码目录的 Windows 用户也可双击 启动机器人.cmd:如果 3080 已由 DSH 使用,直接打开现有页面;其他程序占用时停止并提示,不另起重复实例。若存在本机自建的 .local/acestep/start-local-services.ps1,会先调用它恢复本地语音/唱歌服务;其他安装者需自行启动这些服务。

报 EADDRINUSE 127.0.0.1:3080 表示已有进程监听。源码更新需重载后端,仅刷新网页不会加载新代码;dshmarket 更新后的「立即重启」已验证。关闭网页不等于关闭 DSH,电脑关机后仍需重新启动 DSH 和本机服务。

来源

- 腾讯 QQ 插件、QQ 开放平台
- DeepSeek Harness
- 第三方许可证见 THIRD_PARTY_NOTICES.md 和各依赖包。
预览分享卡片长什么样 ↓sidifeng/dsh-companion
分享 · DeepSeek Harness Hub
sidifeng/dsh-companion

为 QQ 官方机器人接入记忆、识图与语音能力

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部