人类掌控的内存协议
AI 聊天审批
在 AI 代理聊天中,Engram 的审批是对话式的。代理会先展示整理后的 TYPE: ... | TEXT: ... 候选内容;如果是规则记忆,还会同时展示 Light/Balanced/Strict 变体。回复 yes 表示按当前候选原样保存,回复 audit 表示继续修改,回复 cancel 表示取消。收到 yes 后,代理会使用 engram save-session --accept-all 写入刚刚获批的候选内容。直接在 CLI 中保存时,除非明确调用了 accept-all 命令,否则仍然使用 A/B/C。
Engram 不仅仅是“智能体内存”。它是一个使内存可检查、可移植且由人类治理的协议。
契约
Markdown 是持久的内存。
JSON 索引和图谱文件是加速层。
批准(Approval)是信任的边界。
哈希(Hashes)是完整性检查。
忽略规则(Ignore rules)是隐私控制。
Git 是可移植性和审计历史。
智能体适配器(Agent adapters)是便利层,而不是权威来源。
智能体可以建议内存,但人类拥有并决定什么成为内存。
内存类型
| 类型 | 用途 |
|---|---|
| Rule | 用户偏好、修正、约束、“总是/绝不”的指导原则 |
| Skill | 可重复的工作流、清单、步骤、操作手册(runbook) |
| Knowledge | 客观的项目事实、决策、实现细节 |
每个激活的内存文件都必须有 Context、Content 和 Example 部分。规则内存还针对简明的行数限制,以便加载的指南能保持实用价值。
写入流 (Write Flow)
- 智能体提议一个或多个候选。
使用
save-session --query-level <n>时,智能体可以考虑最多 n 个可访问的最近人类-智能体聊天,但这只作为候选提议的上下文。 自然写法/engram ss -a last 50 sessions使用相同范围并带有显式一键批准:engram save-session --query-level 50 --accept-all。 - Engram 解析候选类型和目标作用域(scope)。
- Engram 检查 Schema、秘密信息、提示词注入模式和路径安全。
- 人类看到预览。
- 人类回复
A(全部批准)、A 1,3(批准指定)、B <说明>(添加注释批准)或C(拒绝)。 - 只有获得批准的内存才会被写入。
- 索引、图谱、哈希和变更历史(changelog)会被刷新。
读取流 (Read Flow)
- Engram 加载工作区和可选的全局索引。
- 当 ID 重复时,工作区条目胜过全局条目。
- 忽略规则和角色过滤器隐藏无关条目。
- 图谱感知路由选择一个紧凑的上下文包。
- 在输出内容之前运行哈希和安全检查。
为什么这很重要
如果没有协议,内存可能会变成不可见的状态(invisible state)。不可见的状态难以评审、难以共享,并且极易被智能体意外污染。
Engram 故意让内存管理变得简单无趣:文件、差异对比(diffs)、哈希、评审门槛以及人类可以重新运行的的命令。
下一步:操作指南。