360 Secure SkillHub
360 安全技能中心

Memory Architect

核心功能:将单块MEMORY.md拆分为protocols(稳定流程)、active(当前项目)、archive(历史归档)三级文件,提取实体及关系生成结构化图谱。典型场景:MEMORY.md超150行、需组织分层记忆、上下文压缩丢细节、需实体结构化查询时触发。输入为原MEMORY.md,输出为分层文件、实体图谱及索引式MEMORY.md,提升记忆检索与管理效率。

kapslap
kapslap
热度 70.34
最近更新 2026-05-11 17:27:54
分类:效率依赖:读写文件应用场景:文件转换 / 数据处理 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add memory-architect
Metadata
name
memory-architect
description
Restructure flat MEMORY.md files into a tiered memory system with an entity graph. Use when: (1) MEMORY.md is growing unwieldy or exceeds 150 lines, (2) user asks to organize/restructure/tier memory, (3) context compaction is losing important details, (4) you need structured entity lookup (people, projects, properties, contacts) instead of scanning markdown. Triggers on organize my memory, memory is too big, restructure memory, tier my memory, make memory more efficient.

Memory Architect

Split a monolithic MEMORY.md into three tiers plus a structured entity graph.

Architecture

MEMORY.md              → Router (30 lines max). Points to tiers.
memory/protocols.md    → HOT: Stable workflows, shortcuts, procedures. Read on session start.
memory/active.md       → WARM: Current projects, waiting-on, live context. Check before acting.
memory/archive.md      → COLD: Completed work, historical reference. Search when needed.
memory/ontology/graph.jsonl → Structured entities + relations (JSONL append-only)

Process

1. Analyze the existing MEMORY.md

Read the full file. Classify each section:

Content type Tier Examples
Stable workflow / procedure protocols Emoji shortcuts, deploy steps, tool usage rules
Active project / waiting-on active Current builds, pending replies, live URLs
Completed work / reference data archive Done tasks, contact lists, account tables, old decisions
Named entity with properties ontology People, orgs, projects, properties, locations

2. Create the tier files

Write each tier file with a header comment explaining its purpose and update frequency.

protocols.md rules:

  • Only procedures that rarely change
  • Include the exact commands (copy-pasteable)
  • No project-specific state

active.md rules:

  • Only things with a next action or pending status
  • Include "Waiting On" section at bottom
  • Prune completed items to archive on each update

archive.md rules:

  • Completed work grouped by date or category
  • Reference data (contacts, accounts, chat IDs)
  • Keep searchable — use headers and tables

3. Extract entities to ontology

For each named person, organization, project, property, or location, create a JSONL entry:

{"op":"create","entity":{"id":"p_alice","type":"Person","properties":{"name":"Alice","email":"alice@example.com","role":"Engineer"}},"timestamp":"2026-01-01T00:00:00Z"}
{"op":"relate","from":"p_alice","rel":"member_of","to":"org_acme","timestamp":"2026-01-01T00:00:00Z"}

ID conventions:

  • People: p_shortname
  • Organizations: grp_name or org_name
  • Projects: proj_name
  • Properties/locations: prop_name or loc_name

Relation types: member_of, owns, collaborates_on, interested_in, guides, uses, listed_by, located_at

4. Rewrite MEMORY.md as router

Replace MEMORY.md with a ~25-line index that:

  • Lists the three tiers with one-line descriptions
  • Notes the ontology location
  • Preserves any system directives (NO_REPLY rules, heartbeat instructions)
  • Contains zero project-specific content

5. Verify

wc -l MEMORY.md memory/protocols.md memory/active.md memory/archive.md memory/ontology/graph.jsonl

Targets: MEMORY.md under 30, protocols under 100, active under 80, graph = 1 line per entity/relation.

Maintenance

On each session

  • Read memory/protocols.md (always)
  • Scan memory/active.md (always)
  • memory/archive.md — only on memory_search or explicit request

When adding new information

  • New procedure → protocols.md
  • New project/active item → active.md
  • Completed item → move active → archive
  • New person/org/project → append to graph.jsonl

Entity queries

grep "p_forrest" memory/ontology/graph.jsonl
grep '"type":"Project"' memory/ontology/graph.jsonl
cat memory/ontology/graph.jsonl | jq -r 'select(.entity?.type=="Person") | .entity.properties.name'