生命周期管理

📎 引用文件

本文引用的文件 - agent/src/memory/lifecycle.py - agent/src/memory/persistent.py - agent/src/memory/compression.py - agent/src/memory/hierarchy.py - agent/src/config/env_schema.py - agent/src/config/accessor.py - agent/tests/test_memory_lifecycle.py - agent/tests/memory/test_tier2_integration.py

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能与内存优化
  8. 故障排查指南
  9. 结论
  10. 附录:配置、监控与调试

简介

本文件为 Vibe-Trading 记忆生命周期管理系统的权威文档,聚焦记忆项从创建到销毁的完整生命周期:初始化、活跃期、休眠期、归档期。内容涵盖状态转换触发条件、状态监控、资源回收机制、存储策略(含压缩级别)、访问频率调整、垃圾回收算法、性能指标、配置参数、监控告警与调试方法,并提供状态图与资源占用分析示例。

项目结构

记忆系统位于 agent/src/memory 下,围绕“持久化存储 + 生命周期管理 + 压缩流水线 + 层次化路由”组织: - persistent.py:持久化存储、索引、去重、重要性计算、搜索、删除等基础能力 - lifecycle.py:质量评分、衰减、垃圾回收、访问追踪、GC日志 - compression.py:三级压缩(raw → daily → digest),基于 TF-IDF 的关键句/关键词提取 - hierarchy.py:按 memory_type 分目录的层次化路由与扫描优化 - config/env_schema.py:统一的内存功能开关与环境变量映射(VT_MEMORY_) - tests/:覆盖生命周期、压缩、层级集成等场景

graph TB A["PersistentMemory<br/>持久化存储"] --> B["MemoryLifecycle<br/>生命周期管理"] B --> C["CompressionPipeline<br/>压缩流水线"] A --> D["MemoryHierarchy<br/>层次化路由"] B --> E["gc.log<br/>GC决策日志"] A --> F["MEMORY.md<br/>索引快照"] A --> G[".lock<br/>文件级锁"]

图表来源 - agent/src/memory/persistent.py:196-637 - agent/src/memory/lifecycle.py:71-421 - agent/src/memory/compression.py:160-353 - agent/src/memory/hierarchy.py:34-436

章节来源 - agent/src/memory/persistent.py:196-637 - agent/src/memory/lifecycle.py:71-421 - agent/src/memory/compression.py:160-353 - agent/src/memory/hierarchy.py:34-436

核心组件

章节来源 - agent/src/memory/persistent.py:196-637 - agent/src/memory/lifecycle.py:71-421 - agent/src/memory/compression.py:160-353 - agent/src/memory/hierarchy.py:34-436

架构总览

记忆生命周期由“写入 → 活跃 → 衰减 → 压缩/归档 → 删除”构成,受环境开关控制,并通过文件锁保证并发安全。

sequenceDiagram participant App as "调用方" participant PM as "PersistentMemory" participant LC as "MemoryLifecycle" participant CP as "CompressionPipeline" participant FS as "文件系统" App->>PM : add(name, content, type) PM->>FS : 写入frontmatter+body(.md) PM-->>App : path App->>LC : reinforce(name, event, source) LC->>PM : find(name) LC->>FS : 更新quality_score/updated_at LC-->>App : bool Note over LC : 访问时 track_access() 更新 access_count/last_accessed App->>LC : run_gc(dry_run) LC->>PM : list_entries() LC->>LC : compute_importance(qs, ac, days_since) alt 低于归档阈值 LC->>FS : 移动至 archive/ else 低于删除阈值且允许删除 LC->>FS : 复制归档并删除原文件 end opt 开启压缩 LC->>CP : should_compress(level, last_accessed, now) CP-->>LC : target_level LC->>CP : apply_compression(entry_path, body, keywords, target) CP->>FS : 归档原始文件 CP-->>LC : compressed_body LC->>FS : 原子替换 .md 并更新 frontmatter end LC-->>App : actions[]

图表来源 - agent/src/memory/persistent.py:462-578 - agent/src/memory/lifecycle.py:112-178 - agent/src/memory/lifecycle.py:183-273 - agent/src/memory/compression.py:168-334

详细组件分析

记忆项生命周期状态与转换

stateDiagram-v2 [*] --> 初始化(raw) 初始化(raw) --> 活跃期 : "首次使用/被引用" 活跃期 --> 活跃期 : "track_access()/reinforce()" 活跃期 --> 休眠期 : "长时间未访问/重要性下降" 休眠期 --> 归档期 : "重要性低于归档阈值" 归档期 --> 已删除 : "允许删除时" 休眠期 --> 压缩期 : "超过压缩阈值" 压缩期 --> 归档期 : "继续老化" 归档期 --> [*] : "系统清理/手动删除"

图表来源 - agent/src/memory/persistent.py:80-92 - agent/src/memory/lifecycle.py:183-273 - agent/src/memory/compression.py:168-334

章节来源 - agent/src/memory/persistent.py:80-92 - agent/src/memory/lifecycle.py:183-273 - agent/src/memory/compression.py:168-334

重要性计算与衰减

flowchart TD Start(["输入: quality_score, access_count, days_since"]) --> Decay{"是否启用衰减?"} Decay --> |否| ReturnQ["返回 quality_score"] Decay --> |是| Ret["计算 retention = exp(-λ * days_since)"] Ret --> Bonus["计算 access_bonus = min(0.3, access_count*0.1)"] Bonus --> Raw["raw = quality_score * (retention + access_bonus)"] Raw --> Clamp["clamp(raw, 0.0, 1.0)"] Clamp --> End(["返回 importance"])

图表来源 - agent/src/memory/persistent.py:80-92

章节来源 - agent/src/memory/persistent.py:80-92

垃圾回收(GC)流程

flowchart TD S(["开始 run_gc"]) --> Scan["list_entries()"] Scan --> ForEach{"遍历每个条目"} ForEach --> Age{"age_days >= MIN_AGE_DAYS ?"} Age --> |否| Next["下一个条目"] Age --> |是| Imp["compute_importance(...)"] Imp --> DeleteTh{"imp < DELETE_THRESHOLD 且 ENABLE_DELETE?"} DeleteTh --> |是| MarkDel["标记 delete"] DeleteTh --> |否| ArchiveTh{"imp < ARCHIVE_THRESHOLD?"} ArchiveTh --> |是| MarkArc["标记 archive"] ArchiveTh --> |否| Next MarkDel --> Exec{"dry_run?"} MarkArc --> Exec Exec --> |是| Log["记录动作"] Exec --> |否| DoAction["archive/delete 并重建索引"] DoAction --> Compress{"开启压缩?"} Log --> Compress Compress --> |是| CP["should_compress -> apply_compression -> 写回"] Compress --> |否| End(["结束"]) CP --> End

图表来源 - agent/src/memory/lifecycle.py:183-273 - agent/src/memory/compression.py:168-334

章节来源 - agent/src/memory/lifecycle.py:183-273

压缩流水线(Tier 2)

classDiagram class CompressionPipeline { +should_compress(level, last_accessed, now) str? +compress_to_daily(content, keywords) str +compress_to_digest(daily_content, keywords) str +archive_original(entry_path) Path? +apply_compression(entry_path, content, keywords, target) str? +estimate_retention(original, compressed) float }

图表来源 - agent/src/memory/compression.py:160-353

章节来源 - agent/src/memory/compression.py:160-353

层次化路由与扫描优化

章节来源 - agent/src/memory/hierarchy.py:34-436 - agent/src/memory/persistent.py:222-307

质量强化与访问追踪

章节来源 - agent/src/memory/lifecycle.py:112-178

依赖关系分析

graph LR LC["MemoryLifecycle"] --> PM["PersistentMemory"] LC --> CP["CompressionPipeline"] PM --> H["MemoryHierarchy"] LC --> CFG["EnvConfig.memory"] PM --> CFG

图表来源 - agent/src/memory/lifecycle.py:71-421 - agent/src/memory/persistent.py:196-637 - agent/src/config/env_schema.py:461-537

章节来源 - agent/src/config/env_schema.py:461-537

性能与内存优化

章节来源 - agent/src/memory/persistent.py:21-33 - agent/src/memory/persistent.py:41-73 - agent/src/memory/persistent.py:207-216 - agent/src/memory/hierarchy.py:145-176 - agent/src/memory/compression.py:258-334 - agent/src/memory/lifecycle.py:323-379

故障排查指南

章节来源 - agent/src/memory/lifecycle.py:192-202 - agent/src/memory/lifecycle.py:300-318 - agent/src/memory/hierarchy.py:92-143 - agent/src/memory/persistent.py:358-394

结论

Vibe-Trading 的记忆生命周期管理系统以“质量评分 + 衰减 + 垃圾回收 + 压缩”为核心,配合层次化路由与原子写、文件锁、去重等机制,实现了高可靠、可扩展、低维护成本的长期记忆管理。通过统一的环境配置与测试覆盖,可在不同部署环境下灵活启用功能,保障性能与稳定性。

附录:配置、监控与调试

生命周期配置参数

章节来源 - agent/src/config/env_schema.py:411-537

监控与告警

章节来源 - agent/src/memory/lifecycle.py:300-318 - agent/src/memory/compression.py:336-353 - agent/src/memory/persistent.py:207-216

调试工具与方法

章节来源 - agent/tests/test_memory_lifecycle.py:1-348 - agent/tests/memory/test_tier2_integration.py:215-295 - agent/src/config/accessor.py:79-93