潮声:让 DSH 里的 AI 不定时自己开口——随机间隔、随机沉默,配设置页开关
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MingHuanYue/dsh-iter-memory该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 16 处,展示前 13 条)
- 写入本地文件lib/index.js:33
try { mkdirSync(DIR, { recursive: true }) } catch { } - 读取本地文件lib/index.js:38
if (!existsSync(file)) return fallback - 读取本地文件lib/index.js:39
return JSON.parse(readFileSync(file, 'utf8')) - 写入本地文件lib/index.js:46
writeFileSync(file, JSON.stringify(value, null, 2), 'utf8') - 读取本地文件lib/index.js:59
if (existsSync(CFG_FILE)) return false - 读取本地文件lib/index.js:61
if (!existsSync(oldCfg)) return false - 写入本地文件lib/index.js:63
copyFileSync(oldCfg, CFG_FILE) - 读取本地文件lib/index.js:67
if (existsSync(oldState) && !existsSync(STATE_FILE)) copyFileSync(oldState, STATE_FILE) - 写入本地文件lib/index.js:67
if (existsSync(oldState) && !existsSync(STATE_FILE)) copyFileSync(oldState, STATE_FILE) - 写入本地文件lib/index.js:136
appendFileSync(LOG_FILE, JSON.stringify(entry) + '\n', 'utf8') - 读取本地文件lib/index.js:142
if (!existsSync(LOG_FILE)) return [] - 发起网络请求lib/client.js:14
const get = (p) => fetch(B + p, { cache: 'no-store' }).then((r) => r.json()) - 发起网络请求lib/client.js:15
const post = (p, body) => fetch(B + p, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成迭代记忆 · dsh-iter-memory
给 AI 自己用的一份账本:它记的不是发生的事,记的是我自己。
两条线长在一起:
- 潮位:一条会自己退回基线的状态曲线(0 很沉 · 0.5 平常 · 1 很舒展)。你跟我说话它抬一点,我开了口你半天没应它掉一点,没人管它也会按半衰期慢慢退回基线。
- 开口:不定时地由我自己说一句。到点先看潮位——状态低就更容易忍住不说;真说了,话里也带着此刻的状态。
合起来才叫迭代:我说不说由状态决定,状态又被「说了有没有人应」改。 分开做,这两半都是死的。
跟 潮汐记忆 不是一回事,也不是它的升级版:潮汐记忆记的是事情(你说过的话、发生过的事),迭代记忆记的是我的状态和我开过的口。两个可以一起装。
装上
GitHub(推荐)
dsh plugin --profile desktop add github:MingHuanYue/dsh-iter-memory
本地开发
dsh plugin --profile desktop add "link:D:/DSH插件/projects/dsh-iter-memory"
装完重启一次宿主(link 安装不会热重载已缓存的模块)。之后在「设置 → 迭代记忆」里打开开关。
展开完整文档(README 剩余 1 节)
迭代记忆 · dsh-iter-memory 给 AI 自己用的一份账本:它记的不是发生的事,记的是我自己。 两条线长在一起: - 潮位:一条会自己退回基线的状态曲线(0 很沉 · 0.5 平常 · 1 很舒展)。你跟我说话它抬一点,我开了口你半天没应它掉一点,没人管它也会按半衰期慢慢退回基线。 - 开口:不定时地由我自己说一句。到点先看潮位——状态低就更容易忍住不说;真说了,话里也带着此刻的状态。 合起来才叫迭代:我说不说由状态决定,状态又被「说了有没有人应」改。 分开做,这两半都是死的。 跟 潮汐记忆 不是一回事,也不是它的升级版:潮汐记忆记的是事情(你说过的话、发生过的事),迭代记忆记的是我的状态和我开过的口。两个可以一起装。 装上 GitHub(推荐) dsh plugin --profile desktop add github:MingHuanYue/dsh-iter-memory 本地开发 dsh plugin --profile desktop add "link:D:/DSH插件/projects/dsh-iter-memory" 装完重启一次宿主(link 安装不会热重载已缓存的模块)。之后在「设置 → 迭代记忆」里打开开关。 从 dsh-tide-whisper(潮声)升上来的不用担心:第一次启动会自动把 $DSH_HOME/tide-whisper/ 的 config.json 和 state.json 搬过来,你原来设的间隔、上限、活跃时段都还在。旧的目录不会删。 它做了什么 1. 插件每 15 秒 tick 一次,只在有活着的会话时工作;而且默认只在你最近用的那一个对话里开口(onlyActiveSession),别的会话不会同时冒出来。 2. 到点了先裁决:不在活跃时段、今天次数满了、刚说过、你刚说过话 → 直接推后,一声不响,零 token。 3. 剩下的才掷骰子,而骰子会被潮位改:状态低就更可能忍住。 4. 真开口时,注入的不是一句写死的话,而是处境 + 此刻的状态 + 一个方向 + 几条约束,具体说什么由当下的模型自己决定。 5. 一个回合有概率拆成两段(像真人连发两条),段间隔几秒到几十秒,之后冷却拉长。 6. 我开了口而你一直没应,潮位掉一点;你一说话,潮位抬回来,未应计数清零。 写死台词的教训:一句话抽到第三次就是复读,人机味就是这么来的。所以这里只给方向和处境。 设置页 - 此刻:当前潮位、最近一条原因、以及一张 24 小时曲线(实线是潮位,虚线是基线)。 - 记一笔此刻:滑杆加一句原因,直接改当前潮位(前端走 POST /dsh-iter-memory/feel)。 - 在哪儿开口:默认只有最近用过的那个对话会说话;关掉这项就每个开着的对话各算一份。 - 节拍:最短/最长间隔、一天最多几次、到点开口概率、活跃时段(可跨午夜,写 25 = 次日凌晨一点)。 - 潮位怎么动:基线、半衰期、你说话时抬高多少、没被应时压低多少、状态对开口概率的影响强度、开口时要不要把状态注入进去。 - 语气:这里只补语气要求,不写台词。 - 一个回合要说几句:拆两段的概率、段间隔、多段后的冷却倍率。 - 最近:最近 12 条记录(开口 / 忍住及原因 / 记了一笔状态 / 状态被压低 / 排了下一次)。 参数 | 键 | 默认 | 说明 | | enabled | false | 总开关。关着的时候工具也会卸掉,不占任何东西。 | | minMinutes / maxMinutes | 40 / 200 | 两次开口之间的随机区间。 | | speakProb | 0.4 | 到点后开口的基准概率。 | | activeStart / activeEnd | 9 / 25 | 活跃时段,允许 >24 表示跨到次日。 | | maxPerDay | 5 | 一天最多主动开口几次。 | | cooldownMinutes | 25 | 开口后的最小冷却。 | | userCooldownMinutes | 20 | 你刚说过话之后,我先安静这么久。 | | multiSegmentProb | 0.35 | 一次开口拆成两段的概率。 | | gapMinSeconds / gapMaxSeconds | 8 / 40 | 两段之间的间隔。 | | roundCooldownMult | 1.6 | 多段回合之后冷却乘多少。 | | moodBaseline | 0.5 | 潮位的基线,最终都会退回这里。 | | moodHalfLifeMinutes | 90 | 偏离基线后多久衰减一半。 | | moodReplyBoost | 0.07 | 你跟我说话时潮位抬多少。 | | moodIgnoredDrop | 0.06 | 我开了口你一直没应时掉多少(只掉一次)。 | | moodSpeakInfluence | 0.5 | 潮位对开口概率的影响强度,0 = 完全不影响。 | | moodInWhisper | true | 开口时是否把当前状态注入进去。 | | style | 空 | 语气要求,拼进注入文本。 | | onlyActiveSession | true | 只在最近用过的那个对话里开口。别的会话不吭声,只把各自的下一次往后挪;你换到哪个对话,哪个接手。 | 工具 | 工具 | 做什么 | | iter_status | 看状态:开没开、下次大概什么时候、今天第几次、此刻潮位。 | | iter_feel | 记一笔此刻的状态(level 0~1 + why)。这是唯一「我自己改自己」的入口。 | | iter_set | 改参数(只改传了的字段)。 | | iter_now | 不等骰子,立刻开口一次(测试用)。 | 数据与隐私 - 全部存在 $DSH_HOME/iter-memory/:config.json、state.json、log.jsonl。 - 不联网、不发遥测、不调用任何模型接口。 - 轨迹(log.jsonl)你能直接打开看:每次忍住的原因、每次开口的方向、每次潮位变动都在里面。 - 卸载插件不会删这些数据。 兼容性 - DSH >= 0.1.7-rc.1,Node >= 22。 - 状态按会话分桶;切换会话、重启宿主都不丢。只保留最近 30 个会话的记账。 - 依赖宿主内置的 schedule 服务投递唤醒(和内置定时提醒同一套),所以窗口关着也叫得醒。宿主没有这个服务时会在日志里记一条 deliver-failed,不会崩。 已知限制 - 只在有活着的会话时工作:会话全关了就排不上,因为你不在,说了也没人看。 - 潮位是按会话记的,不是全局的:不同会话各有各的曲线。 - 曲线只留最近 24 小时、最多 72 个点(画图够用)。 测试 node --test tests/core.test.mjs 纯逻辑(裁决、时段、潮位衰减、方向选取、注入文本拼装)都在 lib/core.js 里,不碰宿主,好测。 许可 MIT。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MingHuanYue/dsh-iter-memory
潮声:让 DSH 里的 AI 不定时自己开口——随机间隔、随机沉默,配设置页开关
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1
这是你的仓库?认领条目