Skill: wgj24/secretary-memory (version 3.1.0)

--- name: secretary-memory description: OpenClaw 秘书式多分区记忆系统 v3.0。仿生现代秘书的笔记本分类法，支持：(1) 多分区并发搜索 + 每分区3条上下文召回，(2) 会话自动摘要，(3) 偏好自动提取 + 用户关系图谱，(4) 记忆冲突主动检测，(5) 定时 consolidation + 会话结束 hook，(6) 精细化恢复/回溯，(7) FTS5 全文搜索 + LLM 摘要，(8) 跨会话召回，(9) 容量管理，(10) 自动 Skill 生成。触发条件：(1) 用户提及记忆管理/记忆系统/秘书式记忆，(2) 需要搜索/召回历史记忆，(3) 需要归档或整理记忆，(4) 设计新的记忆架构。 --- # Secretary Memory - 秘书式记忆系统 v3.0 ## 五大核心改进 | 改进 | 模块 | 触发时机 | |------|------|---------| | 1. 容量管理 | `capacity_manager.py` | 每次 consolidation 时自动运行 | | 2. FTS5 + LLM 摘要 | `fts5_index.py`, `session_search.py` | 搜索时或会话开始 | | 3. 跨会话召回 | `auto_loader.py` | OpenClaw 会话开始时 | | 4. 用户建模 | `user_model.py` | 每次会话结束时增量 | | 5. 自动 Skill 生成 | `skill-creator/` | 同一问题出现 ≥3 次 | --- ## 目录结构 ``` memory/ # 根目录 ├── daily/ # 每日日志（7天内） ├── archive/ # 归档（7天前） ├── agenda/ # 待办 ├── profile/ # 用户偏好 ├── projects/ # 进行中项目 ├── knowledge/ # 知识沉淀 ├── scripts/ # 脚本目录 │ ├── session_summary.py # 会话摘要 │ ├── context_loader.py # 上下文加载 │ ├── memory_search.py # 多分区搜索 │ ├── consolidate.py # 归档脚本 (集成容量管理) │ ├── capacity_manager.py # [NEW] 容量管理 │ ├── fts5_index.py # [NEW] FTS5 全文搜索 │ ├── session_search.py # [NEW] 统一搜索入口 │ ├── auto_loader.py # [NEW] 跨会话召回 │ ├── user_model.py # [NEW] 用户关系图谱 │ ├── profile_miner.py # 偏好提取 (集成用户图谱) │ ├── conflict_detector.py # 冲突检测 │ ├── restore.py # 恢复/回溯 │ ├── migrate.py # 迁移脚本 │ ├── realtime_monitor.py # 实时监控 │ └── skill-creator/ # [NEW] 自动 Skill 生成 │ ├── SKILL.md │ └── auto_skill_generator.py └── references/ └── SPEC.md ``` --- ## 1. 容量管理 (capacity_manager.py) 自动检测 memory 目录容量，防止爆满。 ```bash # 检查容量（每次 consolidation 自动运行） python3 capacity_manager.py --check # 详细输出 python3 capacity_manager.py --verbose --warn # 仅检查不执行 python3 consolidate.py --check-capacity # 自动归档触发检查 python3 capacity_manager.py --auto ``` **阈值配置：** | 指标 | 警告线 | 临界值 | |------|--------|--------| | MEMORY.md 行数 | 80% (400行) | 95% (475行) | | daily/ 文件数 | 80% (24个) | 95% (28个) | | archive/ 大小 | 80% (80MB) | 95% (95MB) | --- ## 2. FTS5 + LLM 摘要 (fts5_index.py, session_search.py) 基于 SQLite FTS5 的快速全文搜索，配合 LLM 总结结果。 ```bash # 构建 FTS5 索引（首次使用） python3 session_search.py --build-index # FTS5 + LLM 摘要搜索 python3 session_search.py "项目X 架构设计" # 纯 FTS5（无 LLM） python3 session_search.py "项目X" --no-llm # 传统分区搜索 python3 session_search.py "项目X" --classic # 混合搜索（默认） python3 session_search.py "项目X" # 会话开始时召回 python3 session_search.py "项目X" --context # 查看索引统计 python3 session_search.py --stats # 优化数据库 python3 fts5_index.py --vacuum ``` **搜索策略：** - `fts5`: 仅 FTS5 全文搜索（BM25 排序） - `classic`: 传统分区搜索 - `hybrid`: FTS5 + 经典搜索合并（默认） --- ## 3. 跨会话召回 (auto_loader.py) 会话开始时自动加载相关记忆，按优先级排序。 ```bash # CLI 用法 python3 auto_loader.py --topic "项目X 架构" python3 auto_loader.py --topic "项目X" --inject # 输出注入格式 python3 auto_loader.py --stats # 查看加载状态 # Hook 用法 python3 auto_loader.py --hook-start --session-id {session_id} --topic "项目X" ``` **优先级算法：** ``` 综合得分 = 相关性 × 分区权重 × 时间加权 分区权重: agenda → 2.0 (最高) projects → 1.8 profile → 1.5 knowledge → 1.2 daily → 1.0 archive → 0.5 (最低) 时间加权: 7天内 → 1.5x 7天后 → 指数衰减，最少 0.3 ``` --- ## 4. 用户建模 (user_model.py) 从会话中提取实体和关系，构建用户知识图谱。 ```bash # 构建图谱 python3 user_model.py --build # 增量更新 python3 user_model.py --update # 图谱统计 python3 user_model.py --stats # 按话题查询 python3 user_model.py --query "项目X" # 获取实体局部图谱 python3 user_model.py --entity "Python" --depth 2 # 清理低频实体 python3 user_model.py --vacuum ``` **实体类型：** | 类型 | 权重 | 示例 | |------|------|------| | user | 2.0 | 用户、客户 | | project | 1.8 | 项目、系统 | | technology | 1.5 | Python、React | | person | 1.3 | 开发者、工程师 | | preference | 1.2 | 喜欢简洁回答 | | concept | 1.0 | 架构、设计 | **关系类型：** `works_on`, `uses`, `manages`, `interested_in`, `collaborates_with` **数据文件：** - 图谱：`memory/.user_graph.json` - 统计：`memory/.user_graph_stats.json` --- ## 5. 自动 Skill 生成 (skill-creator/) 检测复杂/重复任务，自动生成新 Skill 封装解决方案。 ```bash # 检测复杂任务（扫描 daily/ 历史） python3 skill-creator/auto_skill_generator.py --detect # 生成新 Skill python3 skill-creator/auto_skill_generator.py --generate \ --name "task-tracker" \ --pattern "task_tracking" \ --description "自动化任务追踪" \ --triggers "任务,todo,追踪" \ --steps "创建任务" "更新状态" "生成报告" # 注册触发词 python3 skill-creator/auto_skill_generator.py --register \ --skill "task-tracker" --triggers "任务,todo" # 查看统计 python3 skill-creator/auto_skill_generator.py --stats # 列出已生成的 Skills python3 skill-creator/auto_skill_generator.py --list # 自我改进 python3 skill-creator/auto_skill_generator.py --improve ``` **内置复杂模式识别：** | 模式 | 关键词 | 建议名称 | |------|--------|----------| | task_tracking | 任务、todo、追踪、待办 | task-tracker | | code_review | 代码审查、review、PR | code-review | | bug_triage | bug、修复、问题 | bug-triage | | meeting_notes | 会议、meeting、纪要 | meeting-notes | | data_analysis | 分析、数据、报表 | data-analysis | | doc_generation | 文档、doc、生成 | doc-generator | | test_generation | 测试、test、用例 | test-generator | | deployment | 部署、deploy、发布 | deploy-helper | | api_design | API、接口、rest | api-designer | | db_schema | 数据库、schema、表结构 | db-schema-manager | --- ## 原有脚本 ### 会话摘要 session_summary.py ```bash python3 session_summary.py --session "今天讨论了..." --topics "项目X, 决策Y" python3 session_summary.py --session "..." --dry-run # 预览 python3 session_summary.py --watch # 实时监控追加 python3 session_summary.py --session-id {session_id} # Hook 用法 ``` **Hook 触发**：session:end 时自动运行 ### 上下文加载 context_loader.py ```bash python3 context_loader.py "项目X 设计方案" python3 context_loader.py "项目X" --quiet python3 context_loader.py "项目X" --format prompt python3 context_loader.py --topic "项目X" --session-id {session_id} # Hook 用法 ``` **Hook 触发**：session:start 时自动运行（加载历史上下文到 prompt） ### 偏好提取 profile_miner.py ```bash python3 profile_miner.py --session "用户说：喜欢简洁的回答" python3 profile_miner.py --session-id {session_id} # Hook 用法 python3 profile_miner.py --list ``` **Hook 触发**：session:end 时自动运行 ### 冲突检测 conflict_detector.py ```bash python3 conflict_detector.py --new "决定用方案A" --topic "项目X架构" # 可集成到 session:end hook，自动检测新决策与历史的冲突 ``` **Hook 触发**：按需调用（检测到新决策时） ### 恢复/回溯 restore.py ```bash python3 restore.py --list python3 restore.py --date 2026-04-23 python3 restore.py --topic "项目X" ``` **触发方式**：手动查询（按需调用） ### 归档 consolidation ```bash python3 consolidate.py --verbose python3 consolidate.py --dry-run python3 consolidate.py --check-capacity # 仅检查容量 ``` **触发方式**：定时任务（每天 18:00）或手动触发 ### 多分区搜索 memory_search.py ```bash python3 memory_search.py "用户偏好" python3 memory_search.py "GUI Agent" --deep python3 memory_search.py "项目" -p profile,projects ``` **触发方式**：手动查询（按需调用） ### 实时监控 realtime_monitor.py ```bash python3 realtime_monitor.py --daemon # 事件驱动 python3 realtime_monitor.py --daemon --poll # 降级轮询 python3 realtime_monitor.py --once # 单次检查 python3 realtime_monitor.py --status # 查看状态 ``` **触发方式**：后台守护进程运行 --- ## 自动触发配置 ### OpenClaw 支持的自动触发 OpenClaw 支持 cron 定时任务，不支持 session hooks。 **OpenClaw openclaw.json 配置示例：** ```json { "scheduled_tasks": [ { "cron": "0 18 * * *", "prompt": "python3 <path>/consolidate.py --verbose" }, { "cron": "0 9 * * *", "prompt": "python3 <path>/skill-creator/auto_skill_generator.py --remind" } ] } ``` ### 触发方式总结 | 脚本 | 触发方式 | OpenClaw 支持 | |------|---------|--------------| | consolidate.py | 定时任务 (cron) | ✅ 支持 | | auto_skill_generator.py | 定时任务 (cron) | ✅ 支持 | | context_loader.py | session:start hook | ❌ 不支持 | | auto_loader.py | session:start hook | ❌ 不支持 | | session_summary.py | session:end hook | ❌ 不支持 | | profile_miner.py | session:end hook | ❌ 不支持 | | user_model.py | session:end hook | ❌ 不支持 | | conflict_detector.py | 按需调用 | - | | memory_search.py | 按需调用 | - | | restore.py | 按需调用 | - | **说明**： - ✅ = 可配置自动触发 - ❌ = 需要手动调用 - `-` = 本身就是按需使用的工具 ### 定时任务说明 | 功能 | 推荐时间 | cron 表达式 | 说明 | |------|---------|-------------|------| | 归档 consolidation | 每天 18:00 | `0 18 * * *` | 将 7 天前日志归档到 archive | | 记忆提醒 | 每天 9:00 | `0 9 * * *` | 主动建议写入记忆 | **注意**：请将 `<path>` 替换为实际脚本路径 --- ## 自动运作流程 (v3.0) ``` 会话开始 ↓ auto_loader.py 加载相关记忆 (FTS5 + 优先级排序) ↓ 用户交互... ↓ 会话结束 ↓ session_summary.py 生成摘要 → daily/ ↓ profile_miner.py 提取偏好 + user_model.py 更新图谱 ↓ (定时 18:00) ↓ consolidate.py 归档 (自动检查容量) ↓ capacity_manager.py 容量警告 (≥80%) ↓ 容量临界 (≥95%) → 自动触发更多归档 [自动] 定时 9:00 ↓ auto_skill_generator.py 记忆提醒 [手动] 按需调用 ↓ auto_loader.py # 加载相关记忆 session_summary.py # 生成会话摘要 profile_miner.py # 提取用户偏好 user_model.py # 更新用户图谱 context_loader.py # 加载历史上下文 memory_search.py # 多分区搜索 restore.py # 恢复/回溯 ``` **说明**： - `[自动]` = 可配置 cron 定时任务自动运行 - `[手动]` = 需要用户手动调用或集成到 AGENTS.md 启动流程中 --- ## 参考文档 详细规格说明见 `references/SPEC.md`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)