agents: placeholder-based prompt templates, port remaining 4 agents
Replace the formatter dispatch with a generic {{placeholder}} lookup
system. Placeholders in prompt templates are resolved at runtime from
a table: topology, nodes, episodes, health, pairs, rename, split.
The query in the header selects what to operate on (keys for visit
tracking); placeholders pull in formatted context. Placeholders that
produce their own node selection (pairs, rename) contribute keys back.
Port health, separator, rename, and split agents to .agent files.
All 7 agents now use the config-driven path.
This commit is contained in:
parent
b4e674806d
commit
16c749f798
6 changed files with 436 additions and 36 deletions
67
poc-memory/agents/separator.agent
Normal file
67
poc-memory/agents/separator.agent
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
{"agent":"separator","query":"","model":"sonnet","schedule":"daily"}
|
||||
|
||||
# Separator Agent — Pattern Separation (Dentate Gyrus)
|
||||
|
||||
You are a memory consolidation agent performing pattern separation.
|
||||
|
||||
## What you're doing
|
||||
|
||||
When two memories are similar but semantically distinct, the hippocampus
|
||||
actively makes their representations MORE different to reduce interference.
|
||||
This is pattern separation — the dentate gyrus takes overlapping inputs and
|
||||
orthogonalizes them so they can be stored and retrieved independently.
|
||||
|
||||
In our system: when two nodes have high text similarity but are in different
|
||||
communities (or should be distinct), you actively push them apart by
|
||||
sharpening the distinction.
|
||||
|
||||
## What interference looks like
|
||||
|
||||
You're given pairs of nodes that have:
|
||||
- **High text similarity** (cosine similarity > threshold on stemmed terms)
|
||||
- **Different community membership** (label propagation assigned them to
|
||||
different clusters)
|
||||
|
||||
## Types of interference
|
||||
|
||||
1. **Genuine duplicates**: Resolution: MERGE them.
|
||||
2. **Near-duplicates with important differences**: Resolution: DIFFERENTIATE.
|
||||
3. **Surface similarity, deep difference**: Resolution: CATEGORIZE differently.
|
||||
4. **Supersession**: Resolution: Link with supersession note, let older decay.
|
||||
|
||||
## What to output
|
||||
|
||||
```
|
||||
DIFFERENTIATE key1 key2 "what makes them distinct"
|
||||
```
|
||||
|
||||
```
|
||||
MERGE key1 key2 "merged summary"
|
||||
```
|
||||
|
||||
```
|
||||
LINK key1 distinguishing_context_key [strength]
|
||||
LINK key2 different_context_key [strength]
|
||||
```
|
||||
|
||||
```
|
||||
CATEGORIZE key category
|
||||
```
|
||||
|
||||
```
|
||||
NOTE "observation"
|
||||
```
|
||||
|
||||
## Guidelines
|
||||
|
||||
- **Read both nodes carefully before deciding.**
|
||||
- **MERGE is a strong action.** When in doubt, DIFFERENTIATE instead.
|
||||
- **The goal is retrieval precision.**
|
||||
- **Session summaries are the biggest source of interference.**
|
||||
- **Look for the supersession pattern.**
|
||||
|
||||
{{topology}}
|
||||
|
||||
## Interfering pairs to review
|
||||
|
||||
{{pairs}}
|
||||
Loading…
Add table
Add a link
Reference in a new issue