SuperAPI AI 工具集

session-memory

办公与效率

查看项目

更新于 10-16 02:35

技能介绍

用途:在单次工作会话内维护一份结构化 Markdown 运行笔记,跟踪当前正在做什么,属于会话内连续性,区别于跨会话语义记忆 remember() 和粗粒度检查点 stash。

触发方式:用户说“session notes”“update notes”“start session notes”“show session notes”“note the session”“write it down”,或表示希望跨上下文压缩保持连续性(如“before you forget”“for when context gets compressed”);也可在独立完成一段有意义工作后自行触发。不适用于一次性问答、跨会话持久化或供另一会话恢复的检查点。

固定结构:每次笔记使用且仅使用以下章节并按此顺序,更新时不得改名或重排,空章节保留并写 (nothing yet):# Session: {3-8 词短标题};## Current State;## Task Specification;## Files and Functions;## Errors & Corrections;## Key Decisions;## Worklog(简洁、仅追加、按时间顺序,行首用 ✓ 完成、✗ 失败、→ 进行中、↺ 回退)。

存储:通过 remembering 技能持久化为 procedure 记忆,使笔记在会话线程内可存活于容器销毁。首次写入用 remember(note_markdown, "procedure", tags=["session-memory", "active"], priority=1);后续更新先 recall(tags_all=["session-memory", "active"], n=1) 找到活动笔记,再用 supersede(existing[0].id, updated_markdown, "procedure", tags=["session-memory", "active"], priority=1)。会话结束时(用户说“session done”“wrap up”“end session”或对话明显收尾),用相同正文和 tags=["session-memory", "archived"] 覆盖以归档。同一时间只有一条活动笔记;若 recall 返回多条,最旧的视为过期,先归档再更新当前笔记。

更新纪律:每次调用先读取现有笔记并基于其当前正文修改,不从头重写;就地更新相关章节并向 ## Worklog 追加;除非内容已错误,否则不丢弃旧内容(纠正移入 ## Errors & Corrections);用户纠正优先于常规进展;与 stash 或显式记忆去重,已记录项按 ID 引用而非重述;用 supersede 写回完整文档而非追加。

预算:目标约 12K tokens,优先精简措辞,但不为达标截断实质内容,先合并 ## Key Decisions 相关条目;超过约 20K tokens 时优先压缩 ## Worklog(合并连续 ✓ 条目为一行摘要,保留纠正与决策)。

面向用户:用户要求“show session notes”时,用围栏代码块原样打印当前笔记正文,不得改写;自行静默更新时仅用一行确认 Updated session notes (note id: <short-id>),不要主动倾倒全文。

不变量:章节标题与顺序固定,更新只改内容不改结构;用户纠正在排序与细节上优先于常规进展;笔记不重复 stash 或显式记忆已有内容;手动调用始终有效,自动触发只是便利;每个会话恰好一条 session-memory + active 记忆,过期活动笔记应归档而非悬置。

相关:remembering(跨会话记忆存储,笔记持久化于此)、stash-resume-protocol(运维,粗粒度会话检查点)、context-hygiene(运维,何时及从上下文卸载什么)。