Replies: 5 comments
|
对——minimal 预设是有意不带记忆/压缩的。官方源码里 minimal 是一个固定提示词 + 两个工具(bash / str_replace_editor)的最小组合,persona 直接做完整 system prompt,runtime context 快照也被关闭( 想要记忆 / 压缩,两个方向:
|
|
https://github.com/Phant0Meow/dsh-memory-meow 7层记忆,分粒度、分性质检索。 |
|
楼上 @zoahdev 把压缩那半答全了,补「跨会话记忆」这半的一个已实测选项。 Pi 插件生态的 dsh plugin add pi2dsh
dsh plugin add pi-hermes-memory(它带 better-sqlite3 原生构建,pnpm 会拦, 装上后是持久记忆 + 历史会话全文检索: 我们的验证方式(可证伪的那种):两个真实会话,一个代号只在会话 A 的输入里出现过,会话 B 里模型答出了它——B 的唯一可能来源就是插件的存储。完整步骤在 example,自动回归也断言同一性质。 利益相关:pi2dsh 是我们维护的。另外楼上推荐的 dsh-memory-meow 我没用过,不做对比——这只是多给一个验证过的选项。 |
极简模式确实没有记忆,可以选现成插件(来自 dsh-memento 作者)。另外 @zoahdev 的 compaction 方案、@Phant0Meow 与 @weijiafu14 的 memory-meow、pi-hermes-memory 都是好思路:
选择:要稳定选 memento,要轻量选 memory-meow,要指令工程选 hermes-memory。极简模式接入记忆后,建议再配一层记忆开关。 |
|
补充一个实测出来的要点,供后来者少走弯路。 minimal 压制的不止「记忆/压缩」,是全部 runtime context
结果是整条 runtime context 快照为空,而且不止第三方插件:宿主内置的沙箱策略 context 也一起消失。任何依赖 检测方法(已实测)会话记录是 zstd 拼接帧(每次追加一个 frame)。Node 的 const offs = [];
for (let i = 0; i < buf.length - 3; i++)
if (buf[i] === 0x28 && buf[i+1] === 0xB5 && buf[i+2] === 0x2F && buf[i+3] === 0xFD) offs.push(i);
const txt = Buffer.concat(offs.map(o => zlib.zstdDecompressSync(buf.subarray(o)))).toString("utf8");然后在 免重启的 A/B 技巧: 过渡方案:写
|
Uh oh!
There was an error while loading. Please reload this page.
现在是要我们自己去添加类似/handoff /compaction?
All reactions