Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Secretary Memory

v1.4.0

OpenClaw 秘书式多分区记忆系统 v3.0。仿生现代秘书的笔记本分类法,支持:(1) 多分区并发搜索 + 每分区3条上下文召回,(2) 会话自动摘要,(3) 偏好自动提取 + 用户关系图谱,(4) 记忆冲突主动检测,(5) 定时 consolidation + 会话结束 hook,(6) 精细化恢复/回溯,...

1· 71· 5 versions· 0 current· 0 all-time· Updated 58m ago· MIT-0

Install

openclaw skills install secretary-memory

Secretary Memory - 秘书式记忆系统 v3.0

五大核心改进

改进模块触发时机
1. 容量管理capacity_manager.py每次 consolidation 时自动运行
2. FTS5 + LLM 摘要fts5_index.py, session_search.py搜索时或会话开始
3. 跨会话召回auto_loader.pyOpenClaw 会话开始时
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 目录容量,防止爆满。

# 检查容量(每次 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 总结结果。

# 构建 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)

会话开始时自动加载相关记忆,按优先级排序。

# 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)

从会话中提取实体和关系,构建用户知识图谱。

# 构建图谱
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

实体类型:

类型权重示例
user2.0用户、客户
project1.8项目、系统
technology1.5Python、React
person1.3开发者、工程师
preference1.2喜欢简洁回答
concept1.0架构、设计

关系类型: works_on, uses, manages, interested_in, collaborates_with

数据文件:

  • 图谱:memory/.user_graph.json
  • 统计:memory/.user_graph_stats.json

5. 自动 Skill 生成 (skill-creator/)

检测复杂/重复任务,自动生成新 Skill 封装解决方案。

# 检测复杂任务(扫描 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、PRcode-review
bug_triagebug、修复、问题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_designAPI、接口、restapi-designer
db_schema数据库、schema、表结构db-schema-manager

原有脚本

会话摘要 session_summary.py

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

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

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

python3 conflict_detector.py --new "决定用方案A" --topic "项目X架构"
# 可集成到 session:end hook,自动检测新决策与历史的冲突

Hook 触发:按需调用(检测到新决策时)

恢复/回溯 restore.py

python3 restore.py --list
python3 restore.py --date 2026-04-23
python3 restore.py --topic "项目X"

触发方式:手动查询(按需调用)

归档 consolidation

python3 consolidate.py --verbose
python3 consolidate.py --dry-run
python3 consolidate.py --check-capacity  # 仅检查容量

触发方式:定时任务(每天 18:00)或手动触发

多分区搜索 memory_search.py

python3 memory_search.py "用户偏好"
python3 memory_search.py "GUI Agent" --deep
python3 memory_search.py "项目" -p profile,projects

触发方式:手动查询(按需调用)

实时监控 realtime_monitor.py

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 配置示例:

{
  "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.pysession:start hook❌ 不支持
auto_loader.pysession:start hook❌ 不支持
session_summary.pysession:end hook❌ 不支持
profile_miner.pysession:end hook❌ 不支持
user_model.pysession:end hook❌ 不支持
conflict_detector.py按需调用-
memory_search.py按需调用-
restore.py按需调用-

说明

  • ✅ = 可配置自动触发
  • ❌ = 需要手动调用
  • - = 本身就是按需使用的工具

定时任务说明

功能推荐时间cron 表达式说明
归档 consolidation每天 18:000 18 * * *将 7 天前日志归档到 archive
记忆提醒每天 9:000 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

Version tags

latestvk97cghat55afww00gckabcbb1x85tr0k