$ cat ~/map/pi-experience.md
pi-experience
经历记忆扩展:原始 Run 写入自有 SQLite 供 TUI 审计,主 Agent 归并出可跨会话的经历。
extensions✓ 9月14日
事实速查
- GitHub Stars
- ★ 0
- Forks
- 0
- 许可证
- —
- npm / 月
- —
- 最后推送
- 2026年10月13日
安装
npm ci 后 pi -e ./src/index.ts 一次性加载,或 pi install /absolute/path/to/pi-experience 安装为本地 pi 包;需 Node.js 24+ 与 pi 0.85.1## 速览
经历记忆扩展:从扩展事件分流把原始 Run 写入自有的 SQLite,后台分岔会话生成每轮总结供 TUI 面板审计,主 Agent 再归并出可嵌套、可跨会话延续的经历。
## 要点
- $从 pi 扩展事件分流,把原始 Run 记入自有的 SQLite 数据库(WAL、FULL 同步、外键、事务);扩展不读取、解析、索引或修改 pi 的 JSONL,不依赖原生 entry ID,即使 SessionManager.inMemory() 下记录与异常恢复仍然成立。
- $每轮 Run 收束后在后台分岔会话生成总结;只读的中文 /experience 面板供用户审计——R 刷新、L 浏览执行记录、S 请 Agent 整理、D 查看诊断——另有 /experience runs、/experience show R01、/experience prepare、/experience debug 与 /experience raw R01 逐层查看。
- $经历(E)与 Run(R):一个 E 至多一个直接父 E,组合操作拒绝环、重复父关系与重叠区间;根 E 可跨会话归并并传播来源与接入关联,来源时间范围自成员继承,任一来源缺确认结束时间时保持未知。
- $Run 生命周期:agent_start 建立 Run,agent_settled 才确认停止——最终 assistant stop 为 completed、error 与 length 记 failed、aborted 记 interrupted;缺终态或存在未收束内容时标记 recovery_required,死亡写入者的 Run 保留 UUID、编号与已提交事件,不伪造结束时间。
- $环境要求 Node.js 24+ 与 pi 0.85.1,peer dependency 锁定该版本;其他 pi 版本应先验证事件兼容性。
- $明确的范围边界:从启用时开始捕获,不导入此前的 pi 历史;pi 0.85.1 的 ! / !! 直连 bash 路径只有执行前的 user_bash 事件,故仅保存发起;fork 谱系因扩展事件无可映射的 fork 点而明确标记来源未解析;搜索是 SQLite 元信息关键词查询,没有向量召回。
## 常见问题
Q 它会动 pi 的会话文件吗?
不会——pi 写它自己的 JSONL;本插件从扩展事件分流、写自己的 SQLite,从不读取、解析、索引或修改 pi JSONL,也不依赖原生 entry ID 读消息。
Q 能导入已有的 pi 历史吗?
不能——捕获从启用时开始,不导入此前的 pi 历史,也不把已有历史自动变成插件的 Run。
Q 数据库放在哪里?
默认在 ~/.pi/agent/continuity/experience.sqlite(设置了 PI_CODING_AGENT_DIR 时用其下的 continuity/experience.sqlite),可用 --experience-db 或 PI_EXPERIENCE_DB 指定;数据库按会话单写入者设计,应放本机磁盘,不做多机共享写入。
## 参考链接
## 相关条目
## 教程
最后更新: 2026年9月14日