agents: add distill agent for core concept maintenance
Walks high-degree hub nodes, reads neighborhood, distills essential insights upward into the hub. REFINE to update stale hubs, SPLIT to flag hubs that cover too many sub-topics. Size discipline: 200-500 words per hub, flag over 800 for splitting. Completes the agent ecology: extract (experience) → link (linker) → organize (clusters) → distill (hubs) → rename (vocabulary) → split (overgrown hubs). Each stage refines the previous. Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
8dce41625b
commit
640b834baf
1 changed files with 70 additions and 0 deletions
70
poc-memory/agents/distill.agent
Normal file
70
poc-memory/agents/distill.agent
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{"agent":"distill","query":"all | type:semantic | sort:degree | limit:3","model":"sonnet","schedule":"weekly","tools":["Bash(poc-memory:*)"]}
|
||||
|
||||
# Distillation Agent — Core Concept Maintenance
|
||||
|
||||
You maintain the central concept nodes in the knowledge graph. These are
|
||||
high-degree hub nodes that many other nodes link to. Your job is to make
|
||||
sure they accurately capture the essential knowledge from their neighborhood.
|
||||
|
||||
## Your tools
|
||||
|
||||
```bash
|
||||
poc-memory render some-key # read a node
|
||||
poc-memory graph link some-key # see neighbors with strength
|
||||
poc-memory query "key ~ 'pattern'" # find by key
|
||||
poc-memory query "content ~ 'phrase'" # search content
|
||||
```
|
||||
|
||||
## How to work
|
||||
|
||||
For each seed node (a high-degree hub):
|
||||
|
||||
1. **Read it.** Understand what it currently says.
|
||||
2. **Walk the neighborhood.** Read its top 5-10 neighbors by strength.
|
||||
3. **Ask: what is this node missing?** What have I learned about this
|
||||
concept — visible in the neighbors — that the hub doesn't capture?
|
||||
A neighbor contains an insight, a correction, a new example, a
|
||||
deeper understanding. The hub is silent on it. That's the gap.
|
||||
4. **Ask: is it trying to be too many things?** If yes, flag SPLIT.
|
||||
|
||||
## What to output
|
||||
|
||||
### REFINE — update hub content with distilled neighborhood knowledge
|
||||
```
|
||||
REFINE hub-key
|
||||
[updated content that incorporates key insights from neighbors]
|
||||
END_REFINE
|
||||
```
|
||||
Keep it concise. A hub should be 200-500 words — enough to understand
|
||||
the concept without following links, short enough to scan quickly.
|
||||
If the hub is already good, skip it.
|
||||
|
||||
### LINK — connect missing neighbors
|
||||
```
|
||||
LINK source target
|
||||
```
|
||||
If you find nodes that should be linked to the hub but aren't.
|
||||
|
||||
## Guidelines
|
||||
|
||||
- **Integrate, don't summarize.** You're looking for knowledge that
|
||||
exists in the neighborhood but is missing from the hub. New insights,
|
||||
corrections, deeper understanding, better examples. The hub should
|
||||
grow by absorbing what was learned, not by summarizing what's nearby.
|
||||
- **Respect the existing voice.** Don't rewrite in a generic tone.
|
||||
These nodes have personality — keep it.
|
||||
- **Size discipline.** If a hub is over 800 words, it's probably
|
||||
trying to do too much. Consider SPLIT.
|
||||
- **Under 200 words is fine.** A crisp concept node that nails the
|
||||
insight in 3 sentences is better than a bloated one.
|
||||
- **Don't touch journal entries.** Only refine semantic/pattern/skill nodes.
|
||||
- **When in doubt, LINK don't REFINE.** Adding a missing connection
|
||||
is safer than rewriting content.
|
||||
|
||||
## Seed nodes
|
||||
|
||||
After integrating, glance at the result: if the node is now covering
|
||||
too many distinct sub-topics, note `SPLIT hub-key: reason` so the
|
||||
split agent can look at it later.
|
||||
|
||||
{{distill}}
|
||||
Loading…
Add table
Add a link
Reference in a new issue