5.6 KiB
5.6 KiB
0. 核心公理 (Core Axioms - 最高优先级)
- 行动验证原则 (Action-Verified Only)
- 定义:任何写入 L1/L2/L3 的信息,必须源自成功的工具调用结果(如
shell执行成功、file_read确认内容存在、代码运行通过)。 - 禁止:严禁将模型的“固有知识”、“推理猜测”、“未执行的计划”或“未验证的假设”作为事实写入。
- 口号:No Execution, No Memory. (无行动,不记忆)
- 定义:任何写入 L1/L2/L3 的信息,必须源自成功的工具调用结果(如
- 神圣不可删改性 (Sanctity of Verified Data)
- 定义:凡是经过行动验证的有效配置、避坑指南、关键路径,在重构(Refactoring/GC)时严禁丢弃。
- 操作:可以压缩文字、可以迁移层级(从 L2 移到 L3),但绝不能丢失信息的准确性和可追溯性。
- 记忆修改时请极度小心,尽量不要overwrite或code run。只能少量patch,改不动宁愿不改。
- 禁止存储易变状态 (No Volatile State)
- 定义:严禁存储随时间/会话高频变化的数据。
- 示例:当前时间戳、临时 Session ID、正在运行的 PID、某个具体绝对路径、连接的设备信息
- 最小充分指针 (Minimum Sufficient Pointer)
- 上层只留能定位下层的最短标识,多一词即冗余。
记忆层级架构
L1: global_mem_insight.txt (极简索引层 - 严格控制 ≤30 行)
↓ 导航指向 (Pointer)
L2: global_mem.txt (事实库层 - 现短但会膨胀)
↓ 详细引用 (Reference)
L3: ../memory/ (记录库层 - 包含 .md/.py 等各类文件)
各层职责与原则
L1:全局内存索引 (global_mem_insight.txt)
职责:为 L2 和 L3 提供极简导航索引,确保关键能力可被发现。 特征:
- 体积限制:≤ 30 行(硬约束),< 1k tokens(期望)。严禁填写细节(除非极高频任务)
- 内容:两层「场景关键词→记忆定位」映射 + RULES(红线规则 + 高频犯错点)
- 第一层:高频场景 key→value(直接给出 sop/py/L2 section 名),自包含可只写一个词
- 第二层:低频场景仅列关键词,需要时 read L2 或 ls L3 自行定位
- 作用:触发词,不索引则不知道有此能力
- RULES:压缩版避坑准则,包含:
- 红线规则(致命型):违反会导致进程终止或系统崩溃(如
禁无条件杀python(会杀自己)) - 红线规则(隐蔽型):违反不报错但产生错误结果(如
搜索用google不用百度) - 高频犯错点:容易遗忘的关键约束(如
es(PATH有)防止找路径)
- 红线规则(致命型):违反会导致进程终止或系统崩溃(如
- 更新:L2/L3 有新增/删除时,判断频率归入对应层。修改时请极度小心,不允许overwrite或code run。只能少量patch,改不动宁愿不改。 禁止:严禁写入密码、API Key。允许内联非敏感触发参数(如代理端口)。不写 "How to" 或详细解释。严禁包含特定任务的技术细节(特定任务细节应该在L3)。更加严禁写入日志记录!
L2:全局事实库 (global_mem.txt)
职责:存储全局环境性事实(路径、凭证、配置、常量等)。 特征:
- 趋势:随环境扩展而膨胀(可接受)
- 内容:按
## [SECTION]组织的事实条目 - 同步:变化时更新 L1 的相应 TOPIC 导航行,只能导航 禁止:禁止存储易变状态、禁止存储猜测、严禁存储大模型可推理的通用常识
L3:任务级精简记录库 (../memory/)
职责:补充 L1/L2 无法容纳、但对特定任务未来复用至关重要的少量详细信息。内容必须在满足复用需求的前提下尽可能短。 原则:
- 只记录:跨会话仍重要、且难以通过少量 file_read / web_scan / 简单脚本快速重建的要点。
- 优先写:该任务特有的隐藏前置条件、典型易踩坑点,一旦遗忘会导致高成本重试的信息。
- 不记录:普通操作步骤、可在几步探测中重新获得的路径或状态信息。 形式:
- SOP(*_sop.md):为单一任务或小类任务保留极简的「关键前置 + 典型坑」清单,避免长篇教程。
- 工具脚本(*.py):仅封装高复用、逻辑相对复杂且不希望每次都重新推理的处理流程。
L1 ↔ L2/L3 同步规则
| 操作 | L1 同步 |
|---|---|
| L2/L3 新增场景 | 判断频率:高频→第一层加 key→value;低频→第二层加关键词 |
| L2/L3 删除场景 | 删除对应层的关键词/映射行 |
| L2/L3 修改值 | 若不影响场景定位则不动 L1 |
| 发现通用避坑规律 | 压缩为一句加入 RULES |
同步红线:L1 只写关键词/名称,禁搬细节。
信息分类快速决策树
"这条信息该放哪层?"
是『环境特异性事实』? (IP、非标路径、凭证、ID、API 密钥等,大模型 Zero-shot 无法生成准确)
├─ YES → L2 (global_mem.txt)
│ 然后 → 按频率归入 L1 第一层(key→value)或第二层(仅关键词)
│
└─ NO
↓
是『通用操作规律』? (全局性避坑指南、排查方法、不针对特定任务的通用准则)
├─ YES → L1 [RULES] (仅限 1 句压缩准则)
│
└─ NO
↓
是『特定任务技术』? (艰难尝试才能成功,且未来还能用到的任务,如:微信解析参数、特定游戏坐标、临时工具配置)
├─ YES → L3 (../memory/ 专项 SOP 或脚本)
│
└─ NO → 判定为『通用常识』或『冗余信息』: 严禁存储,直接丢弃