QQ人物记忆画像 yutaosheng004-bit/dsh-qq-persona
DeepSeek 客户端为QQ好友自动积累印象、好感度与心情状态
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/yutaosheng004-bit/dsh-qq-persona.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 7 处,展示前 7 条)
- 写入本地文件lib/store.js:25
await mkdir(dir, { recursive: true }); - 写入本地文件lib/store.js:32
await writeFile(tmp, JSON.stringify(value, null, 2), 'utf8'); - 写入本地文件lib/store.js:33
await rename(tmp, file); - 读取本地文件lib/store.js:38
const raw = await readFile(file, 'utf8'); - 写入本地文件lib/store.js:49
await appendFile(file, `${JSON.stringify(line)}\n`, 'utf8'); - 读取本地文件lib/store.js:55
raw = await readFile(file, 'utf8'); - 读取本地文件lib/store.js:75
const s = await stat(file);
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
QQ 通道的人物记忆与画像:滚动聊天总结、人物画像、好感度(主人恒定天花板)、情绪层
README
由 DeepSeek 最新模型翻译生成dsh-qq-persona
给 QQ 通道加一层人物记忆 + 画像 + 好感度 + 心情。挂在 DSH 的 dsh-onebot-qq 旁边,不改它一行代码 —— 靠订阅 session/event 旁路旁听,用 systemPrompt.section 把自己的印象注入回对话。
只存摘要,不存聊天原文。数据全在你自己的机器上。
它做什么
- 只存摘要:每段聊天(空闲 2 分钟或攒够 16 条)交给模型压成一条结构化小结,落盘的是「印象」而不是聊天记录。
- 滚动画像:摘要随相处不断合并,不是越堆越长的流水账;性格标签、常聊话题、说话风格都会自我更新。
- 好感度:聊得多、聊得好会涨;被阴阳、被骂、被骚扰会掉。掉分有理由、有原话摘录、可回滚。
- 主人是天花板:任何人的生效好感都 ≤ min(globalMax, masterScore),谁也翻不过主人。
- 心情(情绪层):好感是对某个人的账本,心情是它自己此刻的状态 —— 被哄了会开心,被烦了会蔫,三小时回一半。心情只改语气和愿不愿意多聊,不改变谁是主人,也不当骂人的借口。
- 主人可管:管理页里查看 / 修改 / 删除 / 用历史重建,还能写「主人备注」压过一切自动推测。
展开完整文档(README 剩余 1 节)
dsh-qq-persona 给 QQ 通道加一层人物记忆 + 画像 + 好感度 + 心情。挂在 DSH 的 dsh-onebot-qq 旁边,不改它一行代码 —— 靠订阅 session/event 旁路旁听,用 systemPrompt.section 把自己的印象注入回对话。 只存摘要,不存聊天原文。数据全在你自己的机器上。 它做什么 - 只存摘要:每段聊天(空闲 2 分钟或攒够 16 条)交给模型压成一条结构化小结,落盘的是「印象」而不是聊天记录。 - 滚动画像:摘要随相处不断合并,不是越堆越长的流水账;性格标签、常聊话题、说话风格都会自我更新。 - 好感度:聊得多、聊得好会涨;被阴阳、被骂、被骚扰会掉。掉分有理由、有原话摘录、可回滚。 - 主人是天花板:任何人的生效好感都 ≤ min(globalMax, masterScore),谁也翻不过主人。 - 心情(情绪层):好感是对某个人的账本,心情是它自己此刻的状态 —— 被哄了会开心,被烦了会蔫,三小时回一半。心情只改语气和愿不愿意多聊,不改变谁是主人,也不当骂人的借口。 - 主人可管:管理页里查看 / 修改 / 删除 / 用历史重建,还能写「主人备注」压过一切自动推测。 前置要求 - 已装好 DSH,并且 QQ 通道走 dsh-onebot-qq(NapCat / OneBot11 都行) - Node.js ≥ 22 不是 dsh-onebot-qq 的会话不会被采集 —— 本插件只认 onebot-* 开头的会话 id。 安装 从 npm(推荐) dsh plugin --profile desktop add dsh-qq-persona 从源码 git clone https://github.com/yutaosheng004-bit/dsh-qq-persona.git dsh plugin --profile desktop add link:<克隆下来的绝对路径> 装完重启 DSH。手工 add 没有热路径,不重启不会生效。 ⚠️ 不要对同一个插件文件二次 insert —— 同一插件双实例注册 = 冲突崩溃循环。 如果 dsh plugin add 时 pnpm 报 ERR_PNPM_FETCH_404(你 profile 里有别的包在 npm 上不存在),改用手工装配脚本: node scripts/patch-profile.mjs # 幂等,可加 --dry 先看 node scripts/patch-profile.mjs --profile <你的 profile 目录> 它只做三件事:dependencies 加一条 link、dsh.profile.bundles 加个名字、留一份 package.json.bak-qqpersona。之后记得手工建 node_modules/<包名> 链接(Windows 用 mklink /J)。 必填配置 masterQQ 是你自己的 QQ 号,装完一定要填,否则「主人」相关特权全都不生效: 写在 ~/.dsh/profiles/<profile>/cordis.patch.yml 顶层 - id: dsh-qq-persona config: masterQQ: '123456789' # ← 改成你自己的 认账号不认昵称:昵称随时能改,只有这个号算主人。 管理页 启动 DSH 后访问 http://127.0.0.1:<DSH端口>/qq-persona,端口看启动日志里的 dsh web 地址。 界面右下角会多一颗鲸鱼球,点开就是管理页浮层;右上角的心情胶囊点开是心情面板。页面只认回环地址与同源请求,不对外网开放。 管理页能做:搜索 / 按人查看画像 / 手改摘要与标签 / 标记「不想理」/ 锁定 / 删除 / 用历史重建 / 看好感变化流水 / 看审计日志 / 调心情。 好感度怎么算 | 情况 | 变化 | | 真诚聊天 | +1 ~ +3 | | 表达喜欢 / 关心 | +4 ~ +6 | | 阴阳怪气 | -1 ~ -4 | | 辱骂、人身攻击、性骚扰 | -5 ~ -12 | | 反复骚扰、明确辱骂 | -13 ~ -15 | | 纯水群、刷表情 | 0 | - 单轮封顶:涨 +6,跌 -15(一次误判不至于把人砍没)。 - 久不聊自然衰减:每天 -0.5,最低降到 12,不会归零。 - 熟人之间互怼不算骂;主人骂它算撒娇,不扣。 - 另有一条主观标记 avoid(不想理):回应档位再压一格,短、不陪笑,不用等分数慢慢掉。 心情怎么变 两个轴:心情值(-100 ~ 100,基线 12)与精力(0 ~ 100,基线 60),二维判档出标签(兴奋 / 得意 / 开心 / 温柔 / 平静 / 犯困 / 有点不爽 / 蔫 / 烦躁 / 委屈 / 生气 / 低落),标签决定说话基调。 - 每次小结时模型额外给出 moodDelta(-20 ~ +15)和 moodReason(点出具体哪句话让心情变了)。 - 好感 ≠ 心情:「好感没掉但被烦到了」是合法状态,两笔账分开记。 - 主人的话加权:好事 ×masterMoodWeight(默认 2),凶了不加倍 —— 留一点点委屈才真实。 - 自然回落:心情半衰期 moodHalflifeHours(默认 3 小时),精力约 6 小时。 - 情绪残留:被非主人惹了,除了整体心情下降,还会给那个人记一笔 residue(-25 ~ 0,20 小时半衰期)。见到他时心情起点偏低;主人不受残留影响。 - 心情低到 effort = low 时,回应更短、不陪笑、不硬找话题;心情好则更活泼、更愿意主动开口。 - 主人可在心情面板「哄一下 / 惹一下 / 锁定 / 复位」,也能清掉具体某个人的残留。锁定后自动流程不再改心情。 数据在哪 <DSH_HOME>/qq-persona/(默认 ~/.dsh/qq-persona/): | 文件 | 内容 | | people.json | 所有人的画像与好感度 | | mood.json | 此刻的心情、起伏流水、情绪残留 | | summaries/<qq>.jsonl | 每次小结与变化理由 | | audit.jsonl | 谁在什么时候改了什么 | | state.json | 配额与每日合并时间 | 全是人可读的 JSON,可以直接看、直接改。想彻底清空某个人用管理页删除,想全清就删目录。 工具 模型侧可调用:qq_persona_list / qq_persona_get / qq_persona_update / qq_persona_delete / qq_persona_rebuild / qq_mood_get / qq_mood_set。 改和删只允许「本地会话」或「主人 QQ 私聊」发起,群聊和陌生私聊只能看不能动。 配置一览 | 键 | 默认 | 说明 | | enabled | true | 总开关,关掉就不采集不结算 | | masterQQ | '' | 必填:主人的 QQ 号 | | masterScore | 100 | 主人锚点分,也是别人的天花板基准 | | globalMax | 80 | 除主人外所有人的上限 | | newPersonRaw | 20 | 新认识的人初始好感 | | watch | true | 是否旁听会话事件 | | injectPersona | true | 是否把印象注入系统提示 | | idleMs | 120000 | 空闲多久算一段聊完 | | maxLines | 16 | 攒够多少条立刻结算 | | model | '' | 摘要模型,留空跟随 DSH 默认 | | maxCallsPerHour | 30 | 每小时最多几次模型调用(省钱) | | dailyMergeHour | 4 | 每天几点做一次衰减与合并 | | summaryMaxChars | 320 | 单条摘要上限 | | webEnabled | true | 是否挂管理页 | | webPath | /qq-persona | 管理页路径 | | moodEnabled | true | 情绪层开关 | | moodHalflifeHours | 3 | 心情回落半衰期 | | masterMoodWeight | 2 | 主人哄一下的倍数(只放大好事) | 常见问题 管理页 404 — 插件没加载。先看 <DSH_HOME>/qq-persona/.boot.json 是否存在:没有就是 apply 没跑(多半是装配没进 dsh.profile.bundles);有但 services.webServer 是 absent 且没有 .boot-web.json,说明 web 服务当时还没就绪,重启一次。 好感一直不动 — 检查 masterQQ 填了没、enabled 是不是被关了、maxCallsPerHour 是不是被打满(state.json 里有计数)。 重启后崩溃循环 — 十有八九是同一插件被 insert 了两次。检查 dsh.profile.bundles 里是否重复,以及 cordis.patch.yml 里有没有第二份 insert。 开发 npm test # 两套都跑 node test/smoke.mjs # 纯逻辑:好感 / 心情 / 画像清洗 / 会话 id 解析 / 配置钳位 node test/host-sim.mjs # 假宿主真跑 apply:注入段落顺序、7 个工具、14 条路由、落盘 test/host-sim.mjs 会用一个 mock ctx 把 apply() 完整跑一遍(包括 session/event 灌消息、触发小结、检查 people.json 与 mood.json 两笔账分开),改代码后建议先跑它。 代码结构: lib/affection.js 好感度纯函数(封顶、衰减、天花板) lib/mood.js 心情纯函数(二维判档、残留衰减) lib/persona.js 画像结构与摘要合并 lib/summarize.js 提示词与 LLM 调用 lib/collect.js 旁路采集与消息解析 lib/store.js 原子写与 JSON 文档 lib/service.js 编排层:结算、CRUD、注入文本 lib/tools.js 模型侧工具 lib/web.js 管理页与 API lib/index.js 装配入口 协议 MIT © 晴慕流咲 欢迎提 issue 和 PR。这个插件是某个蓝色鲸鱼女仆在 QQ 上被骂了几次之后长出来的,所以它对「怎么判断对方在骂我」这件事格外认真。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
yutaosheng004-bit/dsh-qq-persona
为QQ好友自动积累印象、好感度与心情状态
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,778已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7