给 QQ 小号固定人格与记忆,会主动找你聊天
38.1/100
综合分
5
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-fish-soulnpm 源 · dsh-fish-soul 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
静态安装检查通过
未做真实安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 0 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-fish-soul @ 0.13.1
✓Node 引擎要求 >=22.5.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/3 03:17:50
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(172 字)↓
鱼 · 单角色人格与按人记忆:可纠正、有印象、能导入旧聊天记录,日程自走与主动开口;直连 SnowLuma 收发 QQ(群默认拒绝,要列白名单或开「所有群」才回;没发出去的回复排队重发),B站 / 抖音小号私信与自己刷视频;按功能选模型并统计用量花费,能听会说 QQ 语音、收藏表情包、学群里的梗,可选上网查。DSH 插件(单角色 feiyu)
最近更新
在 GitHub 查看全部 →v0.13.12026-11-03
· v0.13.1(B站:站内搜索来源 + @ 她时先读视频)——2026-11-03 发。
· 站内搜索当作刷视频的又一个来源(#38,默认关、只读):bili.browse.search 开了以后,每轮刷视频先按关键词搜一下;关键词要么用设置页填的词表(searchKeywords,随机挑一个),词表留空就让她自己按最近看过的视频提一个(一次小模型调用,只输出 2-8 字);一天最多 searchPerDay(默认 2)次,额度用完连提词都不叫。搜索最多占一轮名额的一半,推荐 / 关注照常有;它们都失败时搜索结果补位,不会空跑(审查修正:第一版会把推荐全部挤掉)。
· 别人评论区 @ 她时可选先读一下视频(#39,默认关、只读):bili.comments.atReadVideo 开了以后,被 @ 的回复发出前先把那个视频的标题、简介和字幕节选(≤800 字)塞进提示词,多两次 B站 接口调用;读失败不影响回复照常发。要在「回评论」+「别人评论区 @ 她也回」都开着的前提下才有这个选项。
· 新测试 test/search-source.mjs、test/at-reads-video.mjs(都进 npm test)。
v0.13.02026-11-03
· v0.13.0(聊天会话工具放行档位 + 抖音图文配 BGM)——2026-11-02 发。
· #37 聊天会话只放行三个记忆工具,自己装的插件工具全被拦:以前 setupAgent 的 restrict 加上全局 tools.guard 双重锁死,设置页也没有开关。新增 tools.sessionAllow 三档:memory(默认,现状不变)/ master(只放开主人的私聊会话,其他人照旧)/ all(所有聊天会话都放开)。设置页在「模型 → 上网查 → 聊天会话能用哪些工具」里切。改档位后已开着的会话要重开一次才生效(工具是在建会话时收窄的)。
· run_code 无论哪档都不放行:PTC 模式下它能跑任意程序,等于绕过所有限制,这是刻意留的红线。
· 抖音图文发布前让模型挑「心情」和一首 BGM:心情映射成卡片配色(暖 / 丧 / 梦 / 清新 / 甜),BGM 从常青热门歌池里选;模型答不出来就退回随机配色、不配歌,绝不拦发布。
· 图文编辑页配 BGM:找「选择音乐」入口 → 搜歌名 → 悬停结果出「使用」再点(实测直接点只试听)。全程尽力而为,没配上照常发布,只在动态里记一笔。
· 发文 prompt 加「这条的方向」(随机 8 种具体指令)、时间感换成「深夜 / 上午 / 下午 / 晚上」、刷到过的视频挑 3 条当题材(不许照抄文案)。
· 发文概率按流量高峰加权:12-13 / 18-22 点 ×2,普通时段 ×1,不再全天均匀摊。
· 测试:#37 三档 + run_code + restrict 调用次数;配歌成功 / 配歌失败 / LLM 乱输出三条路径。
v0.12.22026-11-02
· v0.12.2 — 抖音刷视频进不了推荐页
其实一直在刷,但每轮都空手而归。
· 根因
FEED_URL = 302 到 /jingxuan 精选页。
插件抓的 [data-e2e="feed-active-video"] 只在推荐页才有。落在精选页后 scroll 每轮都空手而归,activity 里只写「这轮没刷到新视频」——看起来像没刷,其实是进错了页面。
· 关键发现
推荐页存在,但只能靠点击左侧栏的「推荐」tab 进入(前端路由跳转,不走服务端 302)。
而且 el.click() 不管用,必须用 Input.dispatchMouseEvent 发真实鼠标事件——抖音对 JS 合成点击免疫。
· 改了什么
lib/douyin-browse.js 加 ensureRecommend(b):
1. scroll 开头先 goto(FEED_URL)(落在精选页)
2. ensureRecommend 先用 activeVideo() 读一条判断在不在推荐页;读不到就找「推荐」按钮位置
3. 用 Input.dispatchMouseEvent 发真实鼠标事件点进去(mouseMoved → mousePressed → mouseReleased)
4. 等 3 秒后再 activeVideo() 验证一次;还进不去就 warn 停下来,不再空刷一轮
· 顺带澄清一个误判
我最初以为 data-e2e-* 选择器全挂了(抖音改版)。错:它们全都活着,只是在推荐页——精选页才是另一套 data-aweme-id / .discover-video-card-item。不是选择器坏了,是进错了页面。
· 验证
· node --check lib/douyin-browse.js → 语法 OK
· test/douyin-browser.mjs → 全过
· test/smoke.mjs → 全过
· test/startup-gate.mjs → 全过
真实浏览器实测(不是 mock):
起点: | feed-active-video: false
ensureRecommend 结果: true
URL:
结构: { active: 1, desc: 2, video: 3 }
· 待验收
没在宿主里跑过完整一轮(宿主得先重启才能加载这个改动)。真实行为待验:进推荐页 → scroll 读到视频 → 写 douyin_seen 记忆 → 主动开口说出刷到的内容。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-fish-soul
让 QQ 小号背后有「同一个人」:固定人格、按人记记忆、有自己的生活节奏、会主动开口;同一个「她」同时出现在 QQ、B站、抖音。
DSH 插件(单角色 feiyu)。版本 0.13.1。
能力
| 面 | 内容 |
| 人格 | 设置页「人格」:7 个内置模板一键换上(第一个「肥鱼 · 通用」只定性格和说话方式、生活细节聊着聊着才有,后面 6 个带现成的生活细节)、可视化编辑、导入 / 导出 SillyTavern 角色卡(PNG / JSON)、撤销上次更换,换完下一轮生效;角色卡(PNG / ccv3 / chara),{{char}} / {{user}} 宏,世界书(constant / 关键词,可单独导入多本 SillyTavern 世界书:正则 / 整词 / 次要关键词、扫描深度、条数和字数预算);卡里的作息(extensions.fish_soul.routine)用来排每天的日程、「看事情的方式」(perspective)进人格段、「不同心情下怎么说话」(moods)跟着她当下的心情带上;模板按气质分、不绑职业;聊久了会「慢慢长」(性格 / 看法的变化要多次、跨天、跨聊天的证据才生效,人格页可看可删);从群聊 / 好友私聊里学梗、说话风格和「什么场合怎么说」(只学别人的话、不带人名,按学到的次数挑几条参考) |
展开完整文档(README 剩余 1 节)
dsh-fish-soul
让 QQ 小号背后有「同一个人」:固定人格、按人记记忆、有自己的生活节奏、会主动开口;同一个「她」同时出现在 QQ、B站、抖音。
DSH 插件(单角色 feiyu)。版本 0.13.1。
能力
| 面 | 内容 |
| 人格 | 设置页「人格」:7 个内置模板一键换上(第一个「肥鱼 · 通用」只定性格和说话方式、生活细节聊着聊着才有,后面 6 个带现成的生活细节)、可视化编辑、导入 / 导出 SillyTavern 角色卡(PNG / JSON)、撤销上次更换,换完下一轮生效;角色卡(PNG / ccv3 / chara),{{char}} / {{user}} 宏,世界书(constant / 关键词,可单独导入多本 SillyTavern 世界书:正则 / 整词 / 次要关键词、扫描深度、条数和字数预算);卡里的作息(extensions.fish_soul.routine)用来排每天的日程、「看事情的方式」(perspective)进人格段、「不同心情下怎么说话」(moods)跟着她当下的心情带上;模板按气质分、不绑职业;聊久了会「慢慢长」(性格 / 看法的变化要多次、跨天、跨聊天的证据才生效,人格页可看可删);从群聊 / 好友私聊里学梗、说话风格和「什么场合怎么说」(只学别人的话、不带人名,按学到的次数挑几条参考) |
| 记忆 | 按人隔离、本轮即时召回(BM25 + 向量 RRF)、艾宾浩斯衰减(重要度高不淡)、可纠正(留旧档)、出处 evidence、每人 ≤150 字印象、8 栏结构化印象、关系阶段演进、好感与情绪、旧聊天记录导入(断点续传,较早的聊天按时间段总结)、导入麦麦的表情包 / 表达方式 / 黑话、记忆页搜索与批量操作(删除 / 恢复 / 重要度 / 私密);聊完自动记(一次调用产出事实 / 事件 / 感受 + 一句话小结,去重合并);隐私:私聊里的敏感记忆标 private,群里检索和召回都不带 |
| 生活 | 虚拟时钟、每日作息与基调、Dream 整理(只补没写的、会标过时)、主动开口与配额 |
| QQ | 直连 SnowLuma(OneBot 11 正向 WS):私聊 / 群聊、群合批带署名、只听点名、戳一戳、撤回不回、可选插话、打字节奏、/鱼 暂停;群默认拒绝(groupAllowList 为空且没开 allGroups 时谁都不回)、没发出去的回复排队重发(退避重试,连上即补发,重启不丢) |
| B站 | 扫码登录、私信(只读 / 自动回复)、跨平台认人、空闲自己刷视频(看字幕 / 热评 / 弹幕,喜欢可点赞、想再看可收藏,站内搜索当又一个来源,后三个默认关)、自己发动态 / 回评论(默认关;可选别人评论区里 @ 她也回,@ 时先读一下视频)、Cookie 自动续期、发图 |
| 抖音 | 专用浏览器扫码登录、私信(只读 / 自动回复)、群聊按人区分(被叫到才回,默认关)、canary 防风控、空闲刷视频、刷到的分享发抖音私信、自己发图文 / 回作品评论(默认关,尽力而为)、表情包复用 |
| 习惯 | 心情影响说话(快慢、长短、插话概率、表情包多少)、去 AI 味(删 markdown / AI 自称 / 套话,太长按句末截)、每晚写日记(私密记忆,第二天想跟谁聊)、合并转发展开、每个群的设定(气氛 / 忌讳)、按聊天选模型、群冷热、记忆调试器(输一句话看会想起哪几条)、戳回去 / 表情回应 |
| 语音 | get_record → STT;回复 [语音] → TTS 发 record(失败 / 太长发文字);听 / 说可以各配一套地址和 key(TTS 支持小米 MiMo) |
| 模型 | 按功能选模型、按天 × 功能 × 模型统计用量与花费、可选上网查 |
| 运维 | 单聊天暂停、动态页、每日自动备份(留 7 份,设置页可恢复到某一份,重启生效)、设置文件读不懂时拒绝覆盖(带 BOM 也能读)、记忆导出 / 原样导回;设置页顶部显示当前版本,自动检查更新(npm / GitHub,每 12 小时,只提示不安装,可关) |
安装
需要 Node ≥ 22.5。抖音专用浏览器需要一台常开的 Windows 桌面。
从 npm:
dsh plugin --profile desktop add dsh-fish-soul
本地源码:dsh plugin --profile desktop add ./dsh-fish-soul。
手工等价:profile 的 package.json 把 dsh-fish-soul 加进 dsh.profile.bundles,并在 dependencies 里写 dsh-fish-soul 的版本(本地源码则用 link: 路径),然后 pnpm install。
插件注入 webServer / tools / systemPrompt / llm / agents / workspaceRegistry,设置页在 DSH 的插件设置里(「人格 / 记忆 / QQ / B站 / 抖音 / 自走 / 模型 / 习惯 / 动态」)。
已在 DSH 0.2.1-rc.5 上验证;更早的 rc 版本未逐一验证,遇到问题请先升级复测。
设置页读不到时怎么分辨:
- HTTP 404:插件后台根本没加载(或宿主没把 /api/plugins/fish-soul/ 转给插件)。看宿主日志里有没有 [fish-soul] 启动闸门已挂。
- 503「插件还在启动 / 插件启动失败,挂在第 N 步…」:插件加载了,但初始化还没走完或中途失败。宿主日志里有对应的 [fish-soul] 启动失败:挂在第 N/M 步「…」 和错误堆栈;走完会打 [fish-soul] 路由已挂。
配置与数据
$DSH_HOME 缺省 ~/.dsh。
| 路径 | 内容 |
| fish-soul-config.json | 全部设置(含 embedding apiKey) |
| fish-soul/soul.db | 单一 SQLite:记忆、人物、日程、会话映射、向量、kv |
| fish-soul/persona.json / persona.png | 人格卡(json 优先);设置页改过的存成 persona.json,旧的进 persona-backups/(留 20 份),persona.prev.json 用来撤销 |
| fish-soul/bili-auth.json | B站凭据(0600,类 Unix 上) |
| fish-soul/douyin-browser/<浏览器>/ | 抖音登录态(专用浏览器 profile) |
| fish-soul/workspace/ | 默认专用工作区「鱼」,表情包在 _stickers/ |
| fish-soul/backups/ | 每日 VACUUM INTO 备份 |
| fish-soul/img-cache/ | webp → png 缓存 |
目录
lib/
index.js 插件入口:配置 schema、工具、瞬态块、路由 db.js soul.db、DDL、身份映射 retrieval.js BM25 + 向量 RRF、单队列双优先级 worker segment.js 中文分词(Intl.Segmenter)与停用词 life.js 虚拟时钟、作息、Dream、主动开口 clock.js 虚拟钟 / 物理钟隔离 soul-memory.js 聊完自动记、检索词组装、关系阶段、印象、情绪 behavior.js 心情影响行为、去 AI 味、日记、记忆调试 gateway.js QQ 会话 / 群合批 / 工具护栏 gateway-behavior.js 网关里的习惯(v0.9 混入) gateway-media.js 网关里的图片 / 私信(混入) llm.js 按功能路由模型(LlmRouter) voice.js 语音收发(听 / 说可分开配) stickers.js 表情包收藏 slang.js 学说法:梗、说话风格、说话方式 persona.js 角色卡解析、规整、保存 / 撤销 persona-templates.js 内置人格模板 growth.js 她慢慢长出来的变化(证据、生效、退场) social.js B站 / 抖音共用的发动态与回评论(SocialBase) douyin-social.js 抖音发图文、回作品评论 browse.js B站自己刷视频 websearch.js 上网查 importer.js 记忆导入 history-import.js 聊天记录导入(txt / jsonl / json / MaiBot) backup.js 备份与导出 channels/ snowluma / onebot / bilibili / douyin client.js 设置页(按需加载) routes*.js HTTP 路由(v07 / v09 / persona / douyin / soul) test/ smoke.mjs 模拟宿主的主流程(依次跑 smoke-v05 ~ v09、smoke-persona、smoke-social 子套件) douyin-browser.mjs 真 Chromium + 假 www.douyin.com eval/ 真模型评测:persona-eval(人格 19 场景)、growth-eval(慢慢长)、inject-eval(防注入)
测试
npm test # 模拟宿主 + 真实 headless Chromium 跑两套;找不到 Chromium 系浏览器或 openssl 时,浏览器用例自动跳过
npm run eval # 用真模型做人格评测(规则 + 模型评审,需要配好可用的模型),结果写在 test/eval/reports/
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Britneycode/dsh-fish-soul
给 QQ 小号固定人格与记忆,会主动找你聊天
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,792已汉化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
这是你的仓库?认领条目