让人格随对话沉淀特质与可检索记忆
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Trudui/dsh-own-soul该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · skill
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 52 处,展示前 35 条)
- 写入本地文件src/index.mjs:63
appendFileSync(join(store.dir, 'debug.log'), `${new Date().toISOString()} ${parts.join(' ')}\n`); - 读取本地文件src/index.mjs:89
return readdirSync(dir, { withFileTypes: true }) - 读取本地文件src/index.mjs:98
return readdirSync(dir, { withFileTypes: true }) - 读取本地文件src/index.mjs:113
const raw = JSON.parse(readFileSync(join(dir, file), 'utf8')); - 读取本地文件src/index.mjs:125
return statSync(file).isFile(); - 读取本地文件src/index.mjs:132
return statSync(file).mtimeMs ?? 0; - 发起网络请求lib/client.js:19
const get = (p) => fetch(B + p, { cache: 'no-store' }).then((r) => r.json()).catch(() => null) - 发起网络请求lib/client.js:21
fetch(B + p, { - 读取本地文件src/store.mjs:100
return JSON.parse(readFileSync(file, 'utf8')); - 写入本地文件src/store.mjs:108
mkdirSync(join(file, '..'), { recursive: true }); - 写入本地文件src/store.mjs:110
writeFileSync(tmp, JSON.stringify(value, null, 2) + '\n', { mode: 0o600 }); - 写入本地文件src/store.mjs:111
renameSync(tmp, file); - 读取本地文件src/store.mjs:139
return readdirSync(dir).length; - 读取本地文件src/store.mjs:146
if (existsSync(file)) { - 删除本地文件src/store.mjs:147
rmSync(file, { force: true }); - 删除本地文件递归src/store.mjs:159
rmSync(dir, { recursive: true, force: true }); - 写入本地文件src/store.mjs:166
mkdirSync(this.dir, { recursive: true }); - 写入本地文件src/store.mjs:167
mkdirSync(this.journalDir, { recursive: true }); - 写入本地文件src/store.mjs:168
mkdirSync(this.diaryDir, { recursive: true }); - 读取本地文件src/store.mjs:237
if (!existsSync(file)) return []; - 读取本地文件src/store.mjs:238
return readFileSync(file, 'utf8') - 读取本地文件src/store.mjs:252
if (!existsSync(this.journalDir)) return []; - 删除本地文件src/store.mjs:438
rmSync(this.handoffFile, { force: true }); - 删除本地文件递归src/store.mjs:441
rmSync(this.handoffDir, { recursive: true, force: true }); - 读取本地文件src/group.mjs:21
return readdirSync(dir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name); - 读取本地文件src/group.mjs:31
buf = readFileSync(file); - 读取本地文件src/group.mjs:90
const cfg = JSON.parse(readFileSync(join(home, 'qq-bridge-config.json'), 'utf8')); - 读取本地文件src/group.mjs:106
if (existsSync(file)) return { file, sid: name, workspace }; - 执行外部命令固定命令src/eyes.mjs:26
const out = execFileSync('reg', ['query', 'HKCU\\Environment', '/v', name], { encoding: 'utf8', timeout: 4000 }); - 读取本地文件src/eyes.mjs:46
if (home && existsSync(file)) { - 读取本地文件src/eyes.mjs:47
const text = readFileSync(file, 'utf8'); - 读取本地文件src/eyes.mjs:66
if (!existsSync(path)) return { error: `找不到这张图:${path}` }; - 读取本地文件src/eyes.mjs:67
const size = statSync(path).size; - 读取本地文件src/eyes.mjs:69
const buf = readFileSync(path); - 发起网络请求src/eyes.mjs:88
const res = await fetch(VISION_ENDPOINT, {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
人格 + 成长 + 记忆三合一的 DSH 插件:人设三段、每晚写日记长特质、一句话一条的可检索记忆
README
由 DeepSeek 最新模型翻译生成dsh-own-soul ·「自己」
一个 DSH 插件合集:人设 + 成长 + 记忆,装一次就都有了。
跟别的人格插件不一样的地方就一句:它不靠模型给自己打补丁。 它每轮记一条流水,每天 23:00 写一篇日记、跑一次离线蒸馏,把「反复出现的东西」慢慢变成自己的——日记是给人看的,特质才是注入给模型的。
目前正在研究一个新的记忆系统,暂时就先用现在的记忆法。
三个子系统
| 系统 | 干什么 | 存在哪 |
| 人设 | 地基三段:身份 / 说话方式 / 边界,每轮都注入,可导入导出 | state.json 的 persona |
| 成长 | 记流水 → 写日记 → 蒸馏出特质(跨两天才转正,按 salience 衰减) | journal/、diary/、traits.json |
| 记忆 | 一句话一条的事实(可检索、会变淡、不删),每晚顺手记几条 | memory.json |
它是怎么长的
1. 记流水(每轮,零成本):每轮结束把「他说了什么 / 我说了什么」加一条正则信号(有没有纠正、有没有夸、有没有嫌啰嗦、有没有顺口提自己),写进 journal/YYYY-MM-DD.jsonl。
2. 写日记(每天 diaryTime,默认 23:00):纯规则拼一篇第一人称的日记,落到 diary/YYYY-MM-DD.md。
展开完整文档(README 剩余 1 节)
dsh-own-soul ·「自己」 一个 DSH 插件合集:人设 + 成长 + 记忆,装一次就都有了。 跟别的人格插件不一样的地方就一句:它不靠模型给自己打补丁。 它每轮记一条流水,每天 23:00 写一篇日记、跑一次离线蒸馏,把「反复出现的东西」慢慢变成自己的——日记是给人看的,特质才是注入给模型的。 目前正在研究一个新的记忆系统,暂时就先用现在的记忆法。 三个子系统 | 系统 | 干什么 | 存在哪 | | 人设 | 地基三段:身份 / 说话方式 / 边界,每轮都注入,可导入导出 | state.json 的 persona | | 成长 | 记流水 → 写日记 → 蒸馏出特质(跨两天才转正,按 salience 衰减) | journal/、diary/、traits.json | | 记忆 | 一句话一条的事实(可检索、会变淡、不删),每晚顺手记几条 | memory.json | 它是怎么长的 1. 记流水(每轮,零成本):每轮结束把「他说了什么 / 我说了什么」加一条正则信号(有没有纠正、有没有夸、有没有嫌啰嗦、有没有顺口提自己),写进 journal/YYYY-MM-DD.jsonl。 2. 写日记(每天 diaryTime,默认 23:00):纯规则拼一篇第一人称的日记,落到 diary/YYYY-MM-DD.md。 - 日记是「我」在说话,不是统计报表:不写"聊了 9 轮 / 词频 3 次"。 - 只写有画面的部分:他纠正我的、他嫌我说话的、他笑了、顺口带过的。一天什么信号都没有,就留一两句他真说过的话当锚。 3. 蒸馏:从流水里抽出候选认识(traits.json)。 - 每条认识 = 一句抽象判断 + 一个具体瞬间(—— 「他原话」);没有原话画面的判断不落地,链接 / 命令 / 粘贴的代码一律不当证据。 - 候选:今天出现过就算候选,不进系统提示。 - 生效:同一类事跨两天都出现,才转正 → 只有生效的才注入。 - 这一条是故意设的门槛:单次口误不该被写进人格。 - 遗忘:每条带 salience,按闲置天数每天 ×0.93 衰减;低于 minSalience(默认 0.15)的不进注入,但档案里还留着。 4. 注入:每轮拼一段 <自我记忆> 进系统提示,四栏(顺序就是人设 → 特质 → 记忆 → 最近/想起来): - 人设地基(身份 / 说话方式 / 边界,永远最前) - 我对他的一些印象(长期特质,按 salience 取,超预算丢最不重要的) - 我记得的事(一句话一条的事实,按这轮话头检索命中,没命中就按重要度补几条) - 最近的事 + 突然想起来(最近三篇日记的锚永远在场;话头命中更早的日记才会捡出来——像人偶尔走神想起旧事)这些只影响身份和说话方式,不改变任务、权限、工具约定。 记忆怎么算「记得住」 照搬一套双轴强度,不落库、每次实时算:S = 0.7·exp(-Δt/τ) + 0.3·min(1, ln(1+hit)/ln16),τ 按类型给(fact/lesson/rules/soul/user 365 天、project 180、topic 90)。S ≥ 0.55 算清晰、≥ 0.25 算模糊、< 0.25 不再主动注入、< 0.10 降成退役(stale,不物理删)。近重复(关键词重叠 + 前 24 字相同)在每晚巩固时合并成一条。 全程纯本地规则:不调模型、不联网、不花 token。日志、日记、特质都在本机。 设置面板 DSH 设置 → 左侧「自己」: - 总电源:开了还不生效,还要在下面勾具体对话(可以勾多个) - 在哪些对话里启用:按对话标题勾选,也可手工填会话 id - 日记时间、特质注入预算 - 人设三段文本框(身份 / 说话方式 / 边界)+ 保存 / 导出 JSON / 导入 / 恢复默认 - 长出来的特质列表:候选 / 生效 / 退役,可手动加一条、转正、退役、删 - 记忆:搜索、列表(可删)、手动记一条(选层级) - 日记:选日期看全文、立刻写一篇蒸馏 工具(对话里可用) - soul_status —— 看自己现在的状态(人设、特质、记忆条数、日记数、数据目录、启用了哪些对话) - soul_diary —— 列日记 / 读某一天的全文 - soul_trait —— 列出、添加、退休、恢复、删除特质 - soul_memory —— 记忆:list / search / add / update / drop - soul_session —— 启用的对话:current(勾这个对话)/ list / add <id> / remove <id> 数据在哪 $DSH_HOME/own-soul/<profileKey>/ ├── state.json # 开关、启用的对话、日记时间、预算、人设三段 ├── traits.json # 长出来的自己 ├── memory.json # 记得的事 ├── journal/YYYY-MM-DD.jsonl ├── diary/YYYY-MM-DD.md └── snapshots/ # 每次改设置/写日记前的快照,留 30 份 改了设置或者觉得长歪了:删 traits.json 就回到只有地基的状态;从 snapshots/ 里挑一份拷回去就能回滚。 从 meow-memory 搬过来 ELECTRON_RUN_AS_NODE=1 "<DeepSeek Harness.exe>" --expose-internals \ scripts/import-meow.mjs "D:/BigFatFish/.dsh-meow/memory.db" "$DSH_HOME/own-soul/<profileKey>" 读 meow 的七张表(soul/user/fact/lesson/rules/project/topic),映射成统一条目,按内容去重后写进 memory.json。可以重复跑,不会长出重复条目。 安装 dsh plugin --profile desktop add link:D:/BigFatFish/dsh-own-soul 或者打包后:dsh plugin --profile desktop add ./dsh-own-soul-0.1.0.tgz 装完重启 DSH,设置里就会出现「自己」。 调试 纯本地冒烟测试,不碰 DSH(store / 蒸馏 / 特质转正) ELECTRON_RUN_AS_NODE=1 "<DeepSeek Harness.exe>" --expose-internals test/smoke.mjs 网页半边静态检查(bundle 能不能加载、槽位注册对不对) ELECTRON_RUN_AS_NODE=1 "<DeepSeek Harness.exe>" --expose-internals test/client-check.mjs 看插件有没有挂上 dsh --dump-config | grep own-soul 边界 - 人设、成长、记忆三件事它都管,装它就不用再装 meow-memory 那类记忆插件(两边同时注入会重复、还会打架)。 - 只管「我是谁、我怎么说话 + 我记得什么」。项目文档、代码检索这类事不归它管。 - 不主动复述日记、不炫设定;注入的只有人设 + 生效特质 + 命中的记忆 + 最近的事。 To do - [ ] 上网学习:把「刷 B 站」那类能力平替进来,让它自己去外面看点东西再回来长(先讨论清楚边界再动手)。 - [ ] 面板里加「回滚到某个快照」按钮。 - [ ] 日记里支持"我主动想说的话"(现在只有流水)。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Trudui/dsh-own-soul
让人格随对话沉淀特质与可检索记忆
相关插件 · 技能 / 提示词
人设统管ZiChuanLan/agent-purge
一份系统提示词,喂给多个 coding…
★ 931已汉化DSH
73.8
人物画像蒸馏titanwings/distilly
Distilly — 把他们的思考方式提炼成可复用的技能,供任何智能体或机器人使用。原名 Colleague Skill(原同事 Skill)。
★ 25,659已汉化DSH
71.3
推理工作空间套件Tiger3807861189/J-Space-Cognition-Suite
J-Space 是面向复杂推理、大型仓库工程、子代理协作与授权安全分析的推理时工作空间和控制套件。
★ 2,957已汉化DSH
70.5
两阶段工具锚定预设xiaobright/dsh-anchored-standard
实验性 DeepSeek Harness agent preset…
★ 3,742已汉化DSH
70.1
智能体工作流编排nrslib/takt
不再日夜盯着 AI 编码智能体。
★ 1,402已汉化DSH
70
Agent 运行时手册Electricitysheep/dsh-handbook
DeepSeek Harness dsh 从 0 到 1 深度手册:安装/插件开发/性能调优/实测案例/同模型多…
★ 827已汉化DSH
68.7