mcpField
M
mnemos

mnemos

github.com/alinaqiAgent 工作流711127 次安装2 周前更新
代码仓库

关于 mnemos

Mnemos 是面向 Claude Code 会话的任务记忆管理 Agent 技能,使用不同保留策略管理目标、约束、结果和上下文,并通过检查点在压缩或会话恢复后保留进度。它还监测 Agent 疲劳,并可从会话记录分析任务中的困难程度。

主要功能

  1. 01按类型管理记忆节点
  2. 02自动检查点与会话恢复
  3. 03基于钩子监测 Agent 疲劳
  4. 04压缩后重新注入检查点
  5. 05导入并评估会话记录困难度
  6. 06与 iCPG 同步目标和约束

适用场景

  1. 01在上下文压缩后恢复任务进度
  2. 02长任务中保留目标和约束
  3. 03在子目标边界保存检查点
  4. 04回顾会话中的错误与返工

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alinaqi/maggy --skill mnemos

安装后在 Claude Code 中输入/mnemos确认已加载。

详细介绍

Mnemos — 任务级记忆生命周期

功能介绍

Mnemos 可防止有损上下文压缩破坏你最需要的结构化知识。它将工作记忆视为一个类型化图谱(MnemoGraph),不同类型的知识有不同的淘汰策略:

  • GoalNodes 和 ConstraintNodes 永不淘汰——它们在所有压缩过程中都会保留
  • ResultNodes 会在淘汰前进行压缩(保留摘要)
  • ContextNodes 会在其激活权重下降时被淘汰
  • CheckpointNodes 会持久化到磁盘,以便恢复会话

疲劳模型

Mnemos 会监控“Agent 疲劳”的 4 个维度——全部通过钩子数据被动观察,无需手动输入:

维度权重信号来源衡量内容
Token 利用率0.40状态栏 JSON上下文窗口的占用程度
范围分散度0.25PreToolUse 文件路径Agent 在多少个目录之间来回切换
重读比率0.20PreToolUse Read 调用Agent 重读已读文件的频率(上下文丢失)
错误密度0.15PostToolUse 结果工具调用失败的比例(Agent 遇到困难的程度)

疲劳状态和操作:

状态分数操作
FLOW0.0–0.4正常运行
COMPRESS0.4–0.6执行微型整合(压缩 3 个 ResultNodes,淘汰 1 个低活跃度 ContextNode)
PRE-SLEEP0.6–0.75写入检查点,执行整合
REM0.75–0.9紧急写入检查点,考虑结束工作
EMERGENCY0.9+写入检查点,立即移交

使用方法

自动模式(钩子处理所有操作):
  1. Statusline 在每次 API 调用时写入 fatigue.json
  2. PreToolUse 钩子在每次编辑前读取疲劳状态,并在达到 0.60+ 时自动写入检查点
  3. PreCompact 钩子写入紧急检查点和压缩标记,并告知摘要器需要保留的内容
  4. SessionStart "compact" 在压缩后立即触发,重新注入完整检查点(主要恢复方式)
  5. SessionStart "startup|resume" 在新会话或恢复的会话中加载最近的检查点
  6. PreToolUse fallback(无匹配器)在 SessionStart 未触发时检测压缩标记
  7. Stop 钩子为下一个会话写入最终检查点
压缩后恢复(三层防护):

当 Claude Code 压缩上下文(占用约 83%)时,Mnemos 会使用三层机制:

  • 第 1 层(PreCompact):向摘要器输出强制保留指令,并附上内联检查点内容。写入 .mnemos/just-compacted 标记。
  • 第 2 层(SessionStart "compact"):主要重新注入方式。 Claude 在压缩后恢复时立即触发——早于任何 Agent 操作。使用该标记,并将完整检查点注入新的上下文。这是 RFC(唤醒状态重建)推荐的方式。
  • 第 3 层(PreToolUse fallback):如果 SessionStart 未触发(旧版本、边缘情况),第一次工具调用会触发 mnemos-post-compact-inject.sh,检测标记并注入。仅作为安全网。

结果:压缩后,你会看到一个“压缩后恢复的上下文”区块,其中包含你的目标、约束、正在处理的内容和进度。可从那里继续。

手动 CLI:
mnemos init                    # Initialize .mnemos/
mnemos status                  # Show node counts + fatigue
mnemos fatigue                 # Detailed fatigue breakdown
mnemos checkpoint --force      # Write checkpoint now
mnemos resume                  # Output checkpoint for context
mnemos consolidate             # Run micro-consolidation
mnemos nodes --type goal       # List active GoalNodes
mnemos add goal "Build auth"   # Add a GoalNode
mnemos bridge-icpg             # Import iCPG ReasonNodes
mnemos ingest-claude --all     # Ingest Claude Code transcripts (see below)
mnemos haze --recent 10        # Show per-session haziness scores

Claude 对话记录摄取与模糊度

Mnemos 可以摄取 Claude Code 会话对话记录(位于 ~/.claude/projects/ 下的每个会话 JSONL 文件),并评估每个会话的模糊度——衡量 Agent 遇到多少困难。会话退出时,Stop hook 会自动执行此操作;也可手动执行。

存储内容:仅包含结构字段(角色、工具名称、文件路径、错误标记、时间戳),以及每轮对话的脱敏 200 字符预览。绝不会持久化完整内容;在任何内容写入磁盘之前,都会先对机密信息(API 密钥、令牌、PEM 块、JWT、凭据)进行脱敏。

模糊度是由五个维度加权得出的分数,每个维度的取值范围为 [0,1]:

维度权重衡量内容
correction_density0.30每个符合条件的用户轮次中的用户纠正次数
redo_ratio0.25出错后再次修改的比例
first_try_error_rate0.20修改后 3 轮内出现错误的比例
orphan_tool_use_rate0.15没有匹配结果的工具调用比例
backtrack_norm0.10git revert/reset --hard/restore 调用

综合分数对应一个等级:clear < 0.25 ≤ cloudy < 0.50 ≤ hazy < 0.75 ≤ lost。

mnemos ingest-claude --all              # ingest every transcript + score
mnemos ingest-claude --session <id>     # one session by id
mnemos ingest-claude --transcript <f>   # a specific JSONL file
mnemos haze --recent 10                 # table of recent sessions
mnemos haze --session <id>              # per-dimension breakdown

摄取操作具有幂等性(通过 last_line_offset 恢复)。如需按项目选择退出,请执行 touch .mnemos/claude-log.disabled。

Agent 指令

处理任务时:

  1. 开始时创建一个 GoalNode:mnemos add goal "what you're trying to achieve" --task-id session-1
  2. 为不变量添加 ConstraintNodes:mnemos add constraint "API backward compatibility" --scope src/api/
  3. 长时间操作前检查疲劳度:mnemos fatigue
  4. 在子目标边界处创建检查点:mnemos checkpoint
  5. 恢复会话时:SessionStart hook 会自动加载你的检查点

iCPG 集成

Mnemos 可与 iCPG(意图增强型代码属性图)对接:

  • mnemos bridge-icpg 会将活跃的 ReasonNodes 导入为 GoalNodes
  • 后置条件/不变量会成为 ConstraintNodes
  • 检查点包含 iCPG 状态(活跃意图、未解决的偏移)

存储

所有内容都保存在 .mnemos/ 中(已加入 gitignore):

  • mnemo.db — SQLite MnemoGraph
  • fatigue.json — 实时令牌指标(由状态行按每次 API 调用更新)
  • signals.jsonl — 行为信号日志(由 PreToolUse 和 PostToolUse hooks 追加)
  • checkpoint-latest.json — 最近的检查点
  • checkpoints/ — 已归档的检查点

评论

支持 Markdown