# 0.10.0 记忆检索与可选平台能力 > 当前增量:0.14.0的[3D记忆关联图](memory-graph-3d.md)使用独立有界局部投影;普通搜索的既有范围与扫描方式没有因此自动改变。本文0.10.0及对应旧版验收仍为历史,不替代新图或当前平台状态。 > 当前0.12.0个人QQ入口使用受管NapCat准备与扫码,本人确认后默认将该独立QQ的私聊与群聊交给当前人格自主社交,指定对象范围可选;操作见[连接说明](qq-one-click-setup.md)。已核NapCat的头像profile.avatar、资料profile.update与QQ空间说说feed.publish可走独立account作用域直连,无聊天target;空间浏览/点赞/评论与翻唱仍取实际扩展能力。具体支持、许可和本版验收见[账号能力说明](account-capabilities.md#0120-current-acceptance)。本文仍为0.10.0历史记录,下文“不会部署桥”和“动态使用自备服务”描述不覆盖后来用户触发的受管准备及本版账号直连。 > 本文保留0.10.0交付时的功能与验收状态。0.10.1的UI翻页、B站本人扫码/只读和启动核实、同源系统投影去重与预算说明见[0.10.1增量验收](ui-retrieval-context-validation.md);下文875/40以及当时未真实扫码的记录不改写为本轮结果。 本轮在同一个相续人格、同一套记忆来源和既有八工具中增加检索、QQ 丰富消息、B 站和可选社交服务。没有引入第三方的人格模板、主人权重、情绪分数、强制回复、随机主动频率或固定遗忘策略。是否检索、如何理解、怎样成长和是否使用平台能力仍由人格选择。 ## 如何开始 1. **先使用文字与关联检索。** 设置 → 相续人格 → 记忆 → 查找关联记忆。默认不需要额外模型。语义检索是可选功能,需要用户配置真实的 embeddings 接口、模型和密钥,并明确按批建立索引;不会用聊天模型生成数字代替向量。 2. **先确认 QQ 连接,再开启需要的能力。** 既有 QQ Bot 官方扫码与 OneBot 兼容桥仍保留。个人 QQ 和群聊的丰富消息依赖实际桥接端;本插件不会接管桌面 QQ。已有 NapCat 桥可接入图片、语音、表情、提及、引用和合并转发。图片附件还需要当前模型声明视觉输入;听语音需要启用入站转写,DSH 已配置且就绪的语音识别服务,以及桥实际返回可处理的音频字节。 3. **B 站是可选连接。** 先本人扫码绑定,选择需要授予当前人格、当前账号的能力,再启用。默认关闭全部操作许可。视频资料、字幕、评论和故事板走同一人格的工具入口;没有第二个人格提示、第二套记忆或自动刷评循环。 4. **QQ 动态与翻唱使用自备服务。** 入口分别是“连接 → QQ 动态扩展”和“创作 → 可选翻唱服务”。它们采用公开的本插件扩展协议,需要用户提供实际兼容的本地或云端服务。普通 OneBot 标准不保证 QQ 空间功能;普通 TTS 也不等于翻唱。未配置时如实显示不可用,不自动安装客户端、下载大模型或申请账号。 既有形象档案、参考图、可选图片/视频接口继续使用“创作”页。平台收到媒体资产的回执与生成完成的作业是两件不同的事实。 ## 记忆:候选、时间与曝光 `memory_search` 保留 `query/targetPersonId/scope/limit`,增加 `mode`、`timeMode/asOf`、`seedIds/associationDepth` 和可选 `diversity`。 | 参数或结果 | 实际含义 | | --- | --- | | `mode:auto` / `hybrid` | 文字候选、已缓存的真实语义向量候选和现有显式关联融合;没有向量服务或可用索引时如实降级 | | `mode:lexical` | 文字匹配及可选的已有关系查找,不调用向量接口;默认空查询不生成查询向量 | | `seedIds` / 深度 0–2 | 从人格选定的真实记录和相关候选沿已存关联查找;不会自动把来源依赖链当成语义关系 | | `timeMode:all` | 保留默认查询语义,查仍然存在的资料 | | `current` | 按记录已有的有效区间筛选当前理解;不猜测缺少的区间 | | `past` | 只表示有效区间已经明确结束的旧理解,不能等同所有历史资料 | | `asOf` | 在仍保留的资料中筛选某个真实时间有效的条目,不恢复已经删除的数据,也不是整个历史仓库快照 | | `retrieval.channels/temporal` 等 | 这条候选是怎样被找到的技术解释,不是人格重要度或关系评分 | | 检索记录 | 区分找到候选、提供给人格上下文的参考、实际工具返回的参考;均不宣称人格一定回忆了它 | 人物、发言角色、来源 ID 与关系归属仍分别保存。同一个裸记录 ID 出现在不同人物分区时不能串成另一个人的经历。`supersedesIds` 不会自动宣布旧看法无效;是否改变理解及有效区间仍由人格决定。反复出现在参考中不会触发自动惩罚、降权或强制回忆。 向量化文档只发生在 owner 显式调用 `retrieval.prepare` 时;查询只在已开启、有可用文档索引且需要时生成查询向量,并复用有界缓存。索引只使用配置长度内的文档片段,返回 `partialTexts/partialDocumentTexts`;原文不截短。`pageComplete/nextOffset` 表示分页进度,`coverage.indexed/eligible/complete` 才表示实际覆盖。重启、换服务、缓存淘汰都可能降低覆盖,原始资料不因此丢失。 ## QQ:收到媒体不等于理解媒体 入站保留有界的安全消息段、原消息 SHA、真实账号/群/发言者/消息编号及发生时间。签名 URL、内联二进制和任意本机路径不会进入人格原件;定位符省略会明确标示。媒体只通过桥实际确认的文件编号和字节,或显式受信任的端口解析。 原始文字仍是 C1 对话原件。纯图片/语音/表情消息可用空文字原件保存真实来信,不拼接“用户说了某句占位文案”。语音转写、引用和转发材料以独立程序材料保留,`speakerId:null`,不冒充用户键入原话;转发中的第三方发言保留其身份线索。图片只有真实附件成功保存且模型声明视觉输入时才标已附加;这不等于确认理解。转写标注实际 DSH STT 输出,不能当成绝对准确的原话。 DSH 入站语音端口接收有界 PCM16 WAV,必要时转换为单声道 16kHz;不会下载识别模型、运行外部 shell 或读取桥返回的任意本机路径。未就绪、格式不支持、超过容量或识别失败时保留未识别状态。 `persona_platform` 继续区分实际支持、用户许可、当前可用和真实执行结果。新增提及、原始消息读取和合并转发读取;系统表情、引用、图片、视频和语音沿已有真实平台回执路径发送。微信能力仍取实际连接器,不因 QQ 的实现而自动声称支持微信群、朋友圈或通话。 ## B 站:资料覆盖与操作回执 支持搜索、首页推荐、视频元数据、选定分 P 的字幕续读、评论/评论回复读取和故事板采样。字幕保留段编号、起止时间、分 P 和续读位置。没有字幕不会被记成“内容为空”。故事板返回实际采样时间、sprite 图与 cropRect;当前默认没有逐帧裁图或连续视频解码。只有宿主真实保存图片附件且模型支持视觉时才提供对应图片,不能声称完整看过视频。 发表评论、回复评论、给明确 UID 发私信或分享视频链接,都需要对应用户授权。分享是私信中的视频链接,不能假称发布了动态。成功需要实际 `rpid` 或 `msg_key`;平台接受不证明评论公开可见或接收人已读。重启后已保存的凭据需要在面板点“核实账号状态”取得当前确认,不能将本机仍有 Cookie 当成实际连通。 准备账先持久化,再进行外发。相同真实调用编号不得替换内容或目标。中断、超时或最终落账失败会保留 `unknown`;同一未确认内容换编号也不会自动重发。owner 可以分页查看收据、依据实际平台消息核对为已送达,或明确确认未送达后再发起新的操作。核实失败保持未知;不会凭手填编号伪造已送达。 扫码属于 B 站公开网页账号授权,本插件没有宣称 B 站开放平台 OAuth 或官方合作。Cookie 保存在 DSH 本机配置区域、使用受限文件创建权限,Windows 上不构成加密保险库;诊断与界面不会回显 Cookie、口令或服务密钥。断开会清理本机凭据,不等于撤销平台所有远端授权。 ### 启动故障与遗留写锁 B站是可选服务。它的初始化失败会进入平台诊断,不加入人格核心启动和其它渠道绑定的等待条件;不会因B站配置损坏或写锁冲突就宣称人格核心也不可用。所选平台仍保持不可用,不能绕过初始化错误发送操作。向量服务和可选动态/翻唱服务也各自记录初始化错误;核心自身的数据或写锁错误仍正常拒绝加载,不被这项隔离掩盖。 异常退出可能留下B站账号账的写锁。只在锁是稳定的普通单链接文件、token与PID格式完整,并连续核对文件身份/内容未变且两次确认原PID已不存在时,才通过独占恢复保护锁回收旧写锁,再尝试取得新写锁。进程仍活着、权限不足、PID状态不明、内容变化、链接文件或异常遗留恢复保护锁都会拒绝接管;没有按锁年龄强抢或删除陌生锁的策略。回收只针对写锁,不重置账号或收据资料,随后仍走正常数据校验与恢复流程。 遇到拒绝时先查看平台诊断,核实是否有另一DSH进程仍在使用该账号账;不要把删除整个账号目录、清空人格或反复扫码当作锁恢复步骤。锁恢复也不代表登录仍有效,重新启动后仍需按面板核实实际账号状态。 ## 可选动态与翻唱协议 协议名 `xiangxu-social-provider/1`;请求/响应JSON格式可在对应服务配置页展开“接口路径与连接选项 → 查看扩展协议格式”。配置来自用户自备服务,不能把路径模板当成 QQ 已公开的 API。动态服务分别配置读取、发布和互动的同源路径及实际账号;翻唱服务分别配置提交、状态查询、可选取消路径、模型和目标音色。外部下载来源须明确配置,密钥不向其他下载来源转发。 翻唱使用已导入的真实音频资产。文件经 32KiB 分块、完整 SHA256 校验和容器检查后导入有界音频库;提交返回真实作业编号,再按同一作业查询。完成后保存结果字节及其指纹、来源与音色服务配置关系,供下载或明确选择的平台语音发送。未知提交不会自动重交;本机中止等待也不等于远端取消成功。任务与资产来源撤销会阻止再次读取和使用,未挂清理 hook 的重新打开路径也核对永久撤销表。分页返回和缓存回填前还核对来源变更世代,防止遗忘期间已取得的旧结果再次回填。取消媒体处理后不会把迟到的图片附件或转写结果发布到新状态。 配置界面不自动生成翻唱或发布动态。owner 的手动操作只表示用户选择的这次操作,不能当成人格已经自主决定长期重复。有界技术作业、来源、产物和回执记录可回查,是否收进记忆仍走人格原有自主选择流程。 ## 技术容量 以下约束针对数据与资源,不决定人格喜好或行为频率。超过容量会明确拒绝、分页或移除可重新生成的缓存,不暗中截断原件、伪造成功或自动改变人格。 | 模块 | 默认或硬上限 | | --- | --- | | 语义缓存 | 默认 256 条、4MiB、1 小时 TTL;查询与文档共享;可配置范围由 `core/retrieval-config.js` 统一定义 | | 文档向量化 | 默认 16 条/批、4,000 字符/文档;硬帽 64 条/批、16,000 字符/文档、4,096 维 | | 检索诊断 | 默认 30 项、256KiB;不额外存查询原文;界面摘要有界,完整内容分页 | | 关联搜索 | 最多 16 个种子、2 层、1,000 个关联节点;超过范围标 partial | | OneBot 原始事件/rich 快照 | 解码 256KiB/128KiB;现有本机 HTTP 入站更低的 64KiB 请求限制仍优先适用 | | 入站实际媒体处理 | 每次最多 4 项、总 16MiB;单音频 8MiB、最长 180 秒、转写 8,000 字符;超出的媒体保留未处理说明 | | B 站 | 配置账 512KiB、512 条外发收据、32 项操作队列、单响应 1MiB;图像单张 4MiB、合计 12MiB、最多 6 个采样点 | | 可选社交服务 | 单音频入库/下载 16MiB;音频库 128MiB/64 项;作业 80 项、同时最多 4 项;状态 8MiB、配置 64KiB | | QQ OneBot11 语音发送链 | 本插件当前record外发单件8MiB;仍需桥实际确认record能力、编码支持与平台回执 | | 音频传输 | 32KiB/块;2 个上传、共 32MiB 暂存、10 分钟;完整 SHA 验证后才导入 | WAV/FLAC/Ogg/MP3只表示可识别容器的校验与音频入库支持,不代表已解码试听、桥能转码或平台一定接受。16MiB音频资产能保存/下载,不等于能按QQ record发送;发送另受上面的8MiB和实际桥/平台限制。 达到 B 站收据或可选作业账硬上限时停止新增操作并返回容量错误,不丢弃未知收据。库内音频可由用户明确删除;清除人格文本不会删除外部音频原件、账号凭据或外部备份。清除预览包含扩展状态,并在核心或辅助写锁仍存在时拒绝删除。 ## 借鉴与许可 只吸收实际有用的能力和工程做法,未复制第三方完整人格或行为规则。调研版本: - [dsh-bili-scroll 固定版本](https://github.com/c1overzz/dsh-bili-scroll/tree/4af98392ee078e02f50a7fd0bf0491033f4675ed):借鉴字幕/故事板覆盖说明、扫码能力和真实发送回执。 - [Aurabot 固定版本](https://github.com/accomplish07zrh-eng/dsh-aurabot-qq/tree/b502b8364cfda1437bce42144e3b290be567efac):借鉴丰富 QQ 消息、可选能力模块和任务式配置;不引入其固定角色、情绪分数、回复频率与另一套记忆裁决。 - [NapCat 实现证据](https://github.com/NapNeko/NapCatQQ/tree/3420f0b76d7dc0ac92cde1663f21ea27f61e13bb):按实际桥能力与真实协议响应验证,不因 OneBot 标准名称就声称具备 QQ 空间或实时通话。 - 精确的 `dafeiyu-config-pack` 仓库未核实。相关 [dafeiyu-astrbot 固定版本](https://github.com/whyever77/dafeiyu-astrbot/tree/018d01b685816c7b1a78fb7e4b50ce588331823a) 只用于比较导入与媒体流程,没有导入预写“自我领悟”记忆;根许可、子目录补丁和素材许可并不相同。 本轮独立 JavaScript 实现,不执行或捆绑上述第三方插件、预设、模型权重、示例音色或歌曲素材。外部服务各自的模型、素材和部署许可由其实际提供方说明。 ## 本轮验收记录 0.10.0 本地验收通过,详见[可核对的验收记录](verification/0.10.0-integrations.json)。最终完整回归 **875/875**,0 失败/跳过/取消,源码在运行期间未变;其中包含 20 项界面逻辑测试和 36 项 B 站协议、权限及崩溃恢复测试。静态检查覆盖 164 个脚本,独立核心导入边界与包目标检查通过。 已安装 DSH SDK 的确定性宿主回归 **40/40**,使用隔离 home 和本地固定模型,覆盖既有初始化、委派、人格生命周期与媒体流程;不能据此宣称真实模型或真实平台已验收。实际 DSH Web 设置页核对了六个连接入口、B 站默认关闭及四项权限、混合检索、诊断和新版使用说明。 合成静音 WAV(65,580 bytes)通过实际 DSH 管理接口三段上传/三段读取,并在界面点击下载;浏览器下载文件与原件 SHA256 一致。内置浏览器两次未提供文件选择器事件,因此没有将文件选择按钮的端到端自动化计为通过;上传逻辑由隔离测试及实际管理接口覆盖。翻唱服务保持关闭,没有调用真实翻唱、语音转写、向量或付费模型。 B 站真实宿主异常退出遗留锁已由生产恢复路径接管验证,测试结束后已卸载测试人格、停止测试宿主,并经正式 acquire/release 路径释放账号锁,隔离目录无遗留写锁。生产 DSH 未强制重启、正式人格数据未变;已有链接安装在普通重启后加载新后端。 QQ/微信没有本机兼容桥账号,B 站也未进行真实扫码,所以没有声称真实账号互动已验收。市场收录申请继续暂缓;归档的实际文件数量、指纹与远端提交/CI状态写入本次交付索引。