memory_add
Store cross-task standing preferences, constraints, and design intent as direction-layer memory that gets injected into every agent's system prompt, with quota enforcement and overflow handling.
Instructions
Add a direction-layer memory — the team's shared, cross-task standing preferences.
方向层 = 低频·高价值密度·跨任务长寿命的偏好/纠正/约束/设计意图。每个派出 的 agent 出生即注入方向层,"全中文""完成即汇报"这类偏好不再靠手抄进 prompt。
写入检验(软门槛):这条能影响多少未来任务?只影响单个任务的 → 去 task_memo_add(情景层),不要写这里。
体量红线是单一轴:存储上限 = 注入预算。方向层按桶计字符配额—— global 1200 字 + 每个 project 1500 字 + user 300 字,一个会话实际继承 3000 字;单条仍 ≤ 400 字。存得下的一定传得到,写不进去的就是真的没位置: 超限时本工具返回该桶全部有效条目(id / kind / 字数 / 全文)+ 用量缺口, 要求当轮先 memory_invalidate(可用 content_match 子串定位)或 memory_reconcile_apply 腾出空间,再重试本次写入。 超长内容改写成「触发条件 + 指向权威文件」的指针条目(如 "涉及生产/集群/DB 时遵守只读铁律,详见 ~/.claude/CLAUDE.md"),正文外置。
写入侧安全扫描:方向层条目会进每个派出 agent 的 system prompt,因此不可见 Unicode、提示注入句式(覆盖既有指令 / 套取系统提示 / 伪造对话角色)、凭据 形态一律拒绝入库。
kind 四类(决定注入截断优先级 constraint>design>directive>preference):
constraint(禁令/护栏):一句话、可机检、终身有效。 如 "所有输出使用中文"、"git 提交绝不自动加 agent 署名"。
design(价值排序/设计意图):缺显式指令时的取舍依据。 如 "技术决策偏向质量/简洁/健壮/长期可维护,不看重开发成本"。
directive(方法论/工作方式):回答"怎么干"。 如 "完成即按问题→根因→解法→验证汇报,不攒批次"。
preference(格式偏好):可选,如 "每句一行便于 diff"。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | constraint / design / directive / preference | preference |
| scope | No | global(全局)/ project(当前项目)/ user(用户级)。 写 global 前自问:**这条对任意目录的任意会话都成立吗?** 提及具体 项目/仓库/书稿/某次任务的一律 scope=project——未注册目录会落入本目录 指纹临时桶("dir:..."),只被本目录的会话继承,绝不广播成全局记忆。 | global |
| content | Yes | 记忆内容(单条 ≤ 400 字,且须放得进本桶字符配额;超长改指针条目) | |
| supersedes | No | 可选,被本条置换失效的旧 memory id(偏好被改 = 新条 supersede 旧条,Zep 失效语义不删除) | |
| source_refs | No | 可选,溯源 id 列表(回指 memo/report/meeting,蒸馏提升时用) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||