# QQ 账号操作:头像、资料、空间说说与好友工具 这是个人 QQ 受管连接上的账号工具,与普通私聊、群聊收发分开。它使用同一个相续人格,不增加固定角色、好感分数、联系频率、预选交往对象或逐次人工审批。一次授予工具能力以后,查询谁、是否申请、验证文字怎么写、如何理解关系及记住什么仍由人格决定。 本版0.12.0的状态见[当前能力与待验收表](account-capabilities.md#0120-current-acceptance),新增字段见[persona-schema第25节](plan/persona/persona-schema.md#0120-account-and-recovery-contract)。0.11.0历史收件、原生诊断和运行时结果仍见[历史验收](qq-one-click-setup.md#0110-final-acceptance),不能替代本版资料/空间的真实写入验收。 ## 用户看到的操作 在 **连接 → QQ → 能力与权限** 分别选择“查询联系人和加好友设置”和“自主发起好友申请”。权限绑定当前人格的记忆目录、平台和实际账号,换人格或换 QQ 不沿用别人的许可。原生接口没有准备好或版本不匹配时,勾选许可不能让接口变成可用;普通 OneBot 聊天仍按自己的实际状态工作。 **连接 → QQ → 账号操作记录** 展示真实账号操作,按头像、资料、空间说说或好友申请分别标注;账号自身目标显示“账号自身”,completed显示“已完成”,支持上一页、下一页和完整资料续读。查看历史账号只改变记录筛选,不登录或切换 QQ。已经保存的资料可在离线时回查;“核对这次申请的状态”需要账号在线和对应查询许可。 - **平台已确认提交**:原生接口返回了已核实的成功码,表示申请已提交;不能因此宣称对方已经收到或同意。 - **等待对方处理**:目前只有待处理状态,没有已建立关系的确认。 - **已确认是好友**:实际好友列表确认了这段关系;如果本来就是好友,工具直接返回该事实,不重发申请。 - **本次申请失败**:保存实际失败阶段及可确认的错误,不用 HTTP 成功冒充申请成功。 - **结果未知**:提交前后发生断线、超时、进程退出或回执保存失败,现有证据不能确认结果。可以核对同一收据;程序不会自动重发该次申请。 最后一项是避免网络故障导致重复操作的技术保护,不是人格联系频率规则。平台自己的风控提示由实际结果报告;没有证据时不猜测计数范围、冷却时间或失败请求是否被计数。 ## 工具调用与资料来源 在 `persona_platform` 中使用 `scope:account`、`platform:qq`。这条入口无需当前已有 QQ 私聊或群聊窗口,不会为了加好友伪造聊天对象、入站消息或人类指令。 | action / accountOperation | 用途 | |---|---| | inspect | 核对实际账号、原生运行状态与可用能力 | | read / friend.query | 用实际 userId 查询当前联系人关系和加好友设置,返回 targetRef、optionsRef | | read / friend.options | 回查已保存的查询资料与引用有效性;不隐式重新查询联系人 | | execute / friend.request | 使用同次真实查询的 accountId、targetRef、optionsRef 与自行选择的 text 提交申请 | | execute / profile.avatar | 使用当前人格已保存图片的 assetId 修改自己的QQ头像;使用profile.update许可 | | execute / profile.update | 使用nickname、可选signature/sex更新自己的资料;使用profile.update许可 | | execute / feed.publish | 使用正文、图片资产、明确可见范围与相应指定QQ列表发布空间说说;使用feed.publish许可 | | read / friend.status | 使用真实 receiptId 核对同一次申请的实际状态 | | read / receipts | 使用 limit、pageCursor 翻阅操作记录 | | read / receipt | 使用 receiptId、offset、maxChars 续读完整资料 | `operationId` 来自宿主的真实工具调用编号,不由模型填写。账号工具不接收聊天 `target`,不进入普通消息的 delivered 账本。来源会话只用于记录这项操作从哪里发起,不把工具资料当作人类说过的话,也不自动写入人格记忆。 查询引用绑定实例、记忆目录、实际账号和本次原生启动代次。换号、重启或引用过期后,旧引用仍可回查原资料,但不能冒充新的有效执行参数。提交前及关键等待后核对身份;执行中与人格切换、清除、停用等生命周期操作互斥,避免把申请发到另一个账号。 ## 原生版本与能力边界 普通 NapCat v4.18.41 公开 OneBot 接口提供处理收到的好友申请,未提供向指定 QQ 主动申请的 action。相续的主动申请使用原创适配层,捕获官方启动流程使用的同一个原生会话,不修改 NapCat 官方 bundle、QQ 文件或插件允许名单。 当前验证契约针对 Windows QQ `9.9.36-53644` 的精确 wrapper 文件与固定 NapCat bundle,启动时核对哈希。其它版本保持普通聊天入口,原生好友能力明确报告不可用,不靠方法名相似就尝试未经核实的参数。 查询使用实际 UIN 字符串和真实原生回调。申请保留该回调返回的标识,包括合法的空 UID;不会把 OneBot 的 UID 自动塞进另一个原生字段。当前支持范围由实测契约和返回的 requirements 决定;问题答案、验证码或其它尚未接通的流程如实报告,不伪造答案、票据或来源。 “处理收到的好友请求”与“主动发起申请”是不同能力。入站事件与回应尚未完成接线时,不能因上游有方法就把整套好友管理标为已支持。0.12.0的空间发布/资料/头像走独立的NapCat OneBot账号桥,分项验真;空间评论读取、群管理和实时通话尚未接线。 ## 容量与故障恢复 资料保存在当前人格的 `extensions/qq-account/` 技术档案中,完整记录与有界查询分开。单次原生 JSON 响应最多 64 KiB;单份完整记录最多 256 KiB;列表每页最多 50 条,完整资料每次最多读取 8000 个 Unicode 字符。每实例最多保留 2048 份操作收据和 2048 份查询资料,索引最多 2 MiB,总档案最多 64 MiB;具体实际值由服务 inspect 返回。 达到容量时明确拒绝新的相应操作,不静默裁掉旧资料或删除结果未知的证据。技术容量不决定什么经历值得记住;人格记忆仍沿原有自主选择链。 插件侧先保存准备记录,原生侧再以同一操作编号持久登记后执行。相同编号的并发、HTTP 断线、宿主或 QQ 进程重启都不能获得第二次原生提交机会。准备状态在崩溃后按“结果未知”保留,后续核对与原始历史分别保存,不用较新的状态抹掉过去的失败。原生服务仅监听本机回环地址,使用独立随机令牌、启动标识与实际账号核验;令牌不进入模型参数、界面资料或公开仓库。 0.11.0历史检查点(原范围保留):当前正式DSH已加载新版原生工具、权限、生命周期与记录页。生产运行时握手与操作者只读好友查询、正式界面的接口就绪均已核实,当前人格的查询/申请能力已按本人既有授权保存;没有重发申请。productionNativeRuntimeTested:true与productionNativeToolTested:false分别表示运行时已测、真实模型使用账号级工具尚待观察,不能将两者合并。当前实测事实集中在[验收表](qq-one-click-setup.md#0110-final-acceptance)。 ### 备份、清除与跨目录边界 人格内账号档案以精确DSH扩展校验器纳入同人格原目录的备份/恢复,nested WAL核checksum与条目,活动writer.lock必须先正常释放;实例停止排空后releaseRoot,维护期间不能重新开档案写者。明确清除包含精确index/query/receipt修订与.wal,仍受20000文件/256MiB扫描帽限制;超过扫描帽会拒绝,不绕过白名单删除整目录。操作收据ID含原实例与根目录,跨人格/换目录迁移未实现,不能简单复制后宣称历史执行身份已经迁移。 共享原生操作journal在库外,按账号与可信操作编号防重复,清除人格文本不会把这个副作用凭证删掉。跨进程prepare准入锁严格限制最多2048项;进程崩溃留下的锁不按时间自动回收,也不以重发验证是否成功。需先确认旧writer已停止,再做受控技术修复;本轮没有自动残锁回收器。档案超限、离线或锁忙是技术状态,不构成人格联系频率规则。 ## 0.12.0 账号自身动作与真实结果 在已授予当前人格、当前QQ账号的工具能力范围内,是否修改自己的头像、昵称、签名、性别资料,具体使用什么内容以及何时修改,均由人格自主决定。程序不设固定更换周期、次数或触发条件。 `profile.avatar`接受当前人格的`assetId`;`profile.update`要求1–64字符的nickname,signature可选最多512字符且可空,sex可选unknown/male/female。资料动作必须取得data.result===0才completed,明确非零failed,缺结果unknown。头像当前核实路径为OneBot status:ok/retcode:0与data:null,不用此结构替代其他动作各自成功条件。 `feed.publish`正文最多16000字符,有图可空;imageAssetIds最多9个唯一ID。每图8MiB、单次总16MiB,媒体容器/MIME/SHA和当前人格归属均复核;原始技术收据只保留资产元数据,不嵌Base64或路径。visibility必须明确:1公开、4好友、16部分好友可见、64仅自己、128部分好友不可见;targetUserIds最多100个唯一真实QQ,仅16/128必须非空,其他范围不得非空。只有实际返回tid才completed,否则unknown。可见范围是平台参数,不替人格决定受众。 本分支provider为napcat-onebot-account;精确NapCat4.18.41或get_supported_actions明示相关action才宣传对应能力。与固定Windows原生好友接口分开核支持与许可。独立scope:account不需要聊天target,不伪造入站或人类发言;是否使用和记住什么仍由人格决定。 沿xiangxu-qq-account/1扩展operation、userId:null与completed;旧好友记录保持原语义。先持久准备,再单次桥操作;相同可信宿主编号只返回旧收据,断线、重启或未知结果不重放,源实例/账号/桥身份变化仍阻止迟到提交。自身动作没有friend.status或通用远端status,只回查本地完整收据;未知不能靠重发宣称已经核实。 同人格原目录的prepare/revision备份恢复已做隔离文件链核验。前阶段正式宿主恢复过同一个在线受控QQ,真实Flash的account inspect与friend.query完成只读检查并确认已有好友,未重发申请;模型自主选择本轮不修改资料、不发说说,QQ头像/资料/空间真实写入仍未验收。之后旧受控QQ已停止,本次最终运行新启动的受控QQ目前等待本人重新扫码,OneBot API尚不可用,不能把此前只读通过视为当前已经在线,也不据此宣称优雅关闭通过。完整回归1289/1289、真实归属残锁恢复和当前未登录条件下的模型只读重试已有结果,登录后材料与平台写入仍待验证;证据集中在[本轮观测](account-capabilities.md#0120-stage-observations),不把静态/隔离测试、旧私群聊天收件或旧好友关系当作新增平台写验收。