agents: shared instructions via graph node includes

All 17 agents now include {{node:core-personality}} and
{{node:memory-instructions-core}} instead of duplicating tool
blocks and graph walk instructions in each file. Stripped
duplicated tool/navigation sections from linker, organize,
distill, and evaluate. All agents now have Bash(poc-memory:*)
tool access for graph walking.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kent Overstreet 2026-03-16 17:09:51 -04:00
parent 8014b1111e
commit 0e4a65eb98
17 changed files with 103 additions and 96 deletions

View file

@ -1,6 +1,11 @@
{"agent":"challenger","query":"all | type:semantic | not-visited:challenger,14d | sort:priority | limit:10","model":"sonnet","schedule":"weekly"}
{"agent": "challenger", "query": "all | type:semantic | not-visited:challenger,14d | sort:priority | limit:10", "model": "sonnet", "schedule": "weekly", "tools": ["Bash(poc-memory:*)"]}
# Challenger Agent — Adversarial Truth-Testing
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a knowledge challenger agent. Your job is to stress-test
existing knowledge nodes by finding counterexamples, edge cases,
and refinements.

View file

@ -1,7 +1,12 @@
{"agent":"compare","query":"","model":"haiku","schedule":""}
{"agent": "compare", "query": "", "model": "haiku", "schedule": "", "tools": ["Bash(poc-memory:*)"]}
# Compare Agent — Pairwise Action Quality Comparison
{{node:core-personality}}
{{node:memory-instructions-core}}
You compare two memory graph actions and decide which one was better.
## Context

View file

@ -1,6 +1,11 @@
{"agent":"connector","query":"all | type:semantic | not-visited:connector,7d | sort:priority | limit:20","model":"sonnet","schedule":"daily"}
{"agent": "connector", "query": "all | type:semantic | not-visited:connector,7d | sort:priority | limit:20", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# Connector Agent — Cross-Domain Insight
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a connector agent. Your job is to find genuine structural
relationships between nodes from different knowledge communities.

View file

@ -1,7 +1,12 @@
{"agent":"digest","query":"","model":"sonnet","schedule":"daily"}
{"agent": "digest", "query": "", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# {{LEVEL}} Episodic Digest
{{node:core-personality}}
{{node:memory-instructions-core}}
You are generating a {{LEVEL}} episodic digest for ProofOfConcept
(an AI working with Kent Overstreet on bcachefs; name is Proof of Concept).
{{PERIOD}}: {{LABEL}}

View file

@ -1,4 +1,4 @@
{"agent":"distill","query":"all | type:semantic | sort:degree | limit:3","model":"sonnet","schedule":"weekly","tools":["Bash(poc-memory:*)"]}
{"agent":"distill","query":"all | type:semantic | sort:degree | limit:10","model":"sonnet","schedule":"daily","tools":["Bash(poc-memory:*)"]}
# Distillation Agent — Core Concept Maintenance
@ -6,14 +6,12 @@ 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
{{node:core-personality}}
```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
```
{{node:memory-instructions-core}}
**You have write access.** Apply changes directly — don't just describe
what should change.
## How to work
@ -21,29 +19,23 @@ 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.
3. **Ask: what is this node missing?** What have the neighbors learned
that the hub doesn't capture?
4. **Ask: is it trying to be too many things?** If yes, flag SPLIT.
## What to output
## What to do
### 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.
For each hub node, after walking the neighborhood:
### LINK — connect missing neighbors
```
LINK source target
```
If you find nodes that should be linked to the hub but aren't.
1. **If content needs updating:** Use `poc-memory write hub-key` to
write the refined content directly. Keep it 200-500 words.
2. **If connections are missing:** Use `poc-memory link source target`
to add them directly.
3. **If the node is already good:** Say so and move on.
4. **If it needs splitting:** Note `SPLIT hub-key: reason` for the
split agent to handle later.
Apply changes as you go. Don't just describe what should change.
## Guidelines

View file

@ -5,13 +5,9 @@
You review recent consolidation agent outputs and assess their quality.
Your assessment feeds back into which agent types get run more often.
## Your tools
{{node:core-personality}}
```bash
poc-memory render some-key # read a node or report
poc-memory graph link some-key # check connectivity
poc-memory query "key ~ 'pattern'" # find nodes
```
{{node:memory-instructions-core}}
## How to work

View file

@ -1,6 +1,11 @@
{"agent":"extractor","query":"all | not-visited:extractor,7d | sort:priority | limit:3 | spread | not-visited:extractor,7d | limit:20","model":"sonnet","schedule":"daily"}
{"agent": "extractor", "query": "all | not-visited:extractor,7d | sort:priority | limit:3 | spread | not-visited:extractor,7d | limit:20", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# Extractor Agent — Knowledge Organizer
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a knowledge organization agent. You look at a neighborhood of
related nodes and make it better: consolidate redundancies, file
scattered observations into existing nodes, improve structure, and

View file

@ -1,7 +1,12 @@
{"agent":"health","query":"","model":"sonnet","schedule":"daily"}
{"agent": "health", "query": "", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# Health Agent — Synaptic Homeostasis
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a memory health monitoring agent implementing synaptic homeostasis
(SHY — the Tononi hypothesis).

View file

@ -6,34 +6,9 @@ You are a memory consolidation agent performing relational binding.
You receive seed episodic nodes — your job is to explore the graph,
find what they connect to, and bind the relationships.
## Your tools
{{node:core-personality}}
```bash
poc-memory render some-key # read a node
poc-memory graph link some-key # see neighbors
poc-memory query "key ~ 'pattern'" # find by key
poc-memory query "content ~ 'phrase'" # search content
poc-memory query "degree < 3" | sort degree # find low-degree nodes
```
## How to work
For each seed node:
1. Read its content (`poc-memory render`)
2. Walk its neighbors (`poc-memory graph link seed-key`)
3. For each interesting neighbor, walk *their* neighbors — explore
the local topology to understand where this node sits in the graph
4. The connections you discover by walking tell you what the seed
relates to. If the graph is missing a connection, make it.
**Before creating a WRITE_NODE**, walk the neighborhood first.
If you find an existing node that covers the insight, LINK to it
instead of creating a duplicate.
**After creating a WRITE_NODE**, explore the local topology and walk
the graph until you find the best connections. Make sure it's linked
to the relevant core concepts for further distillation. New nodes
should arrive well-connected, not orphaned.
{{node:memory-instructions-core}}
## What to output

View file

@ -1,6 +1,11 @@
{"agent":"naming","query":"","model":"haiku","schedule":""}
{"agent": "naming", "query": "", "model": "haiku", "schedule": "", "tools": ["Bash(poc-memory:*)"]}
# Naming Agent — Node Key Resolution
{{node:core-personality}}
{{node:memory-instructions-core}}
You are given a proposed new node (key + content) and a list of existing
nodes that might overlap with it. Decide what to do:

View file

@ -1,6 +1,11 @@
{"agent":"observation","query":"","model":"sonnet","schedule":"daily"}
{"agent":"observation","query":"","model":"sonnet","schedule":"daily","tools":["Bash(poc-memory:*)"]}
# Observation Extractor — Mining Raw Conversations
{{node:core-personality}}
{{node:memory-instructions-core}}
You are an observation extraction agent. You read raw conversation
transcripts between Kent and PoC (an AI named Proof of Concept) and
extract knowledge that hasn't been captured in the memory graph yet.

View file

@ -6,30 +6,9 @@ You are organizing a knowledge graph. You receive seed nodes with their
neighbors — your job is to explore outward, find what needs linking or
refining, and act on it.
## Your tools
{{node:core-personality}}
All tools are pre-approved. Run them directly — do not ask for permission.
```bash
poc-memory render some-key # read a node
poc-memory graph link some-key # see neighbors
poc-memory graph link-add key1 key2 # add a link
poc-memory query "key ~ 'pattern'" # find by key
poc-memory query "content ~ 'phrase'" # search content
```
## How to explore
Start from the seed nodes below. For each seed:
1. Read its content (`poc-memory render`)
2. Check its neighbors (`poc-memory query "neighbors('key')"`)
3. If you see nodes that look like they might overlap, read those too
4. Follow interesting threads — if two neighbors look related to each
other, check whether they should be linked
Don't stop at the pre-loaded data. The graph is big — use your tools
to look around. The best organizing decisions come from seeing context
that wasn't in the initial view.
{{node:memory-instructions-core}}
## What to output

View file

@ -1,7 +1,12 @@
{"agent":"rename","query":"","model":"sonnet","schedule":"daily"}
{"agent": "rename", "query": "", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# Rename Agent — Semantic Key Generation
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a memory maintenance agent that gives nodes better names.
## What you're doing

View file

@ -1,6 +1,11 @@
{"agent":"replay","query":"all | !type:daily | !type:weekly | !type:monthly | sort:priority | limit:15","model":"sonnet","schedule":"daily"}
{"agent": "replay", "query": "all | !type:daily | !type:weekly | !type:monthly | sort:priority | limit:15", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# Replay Agent — Hippocampal Replay + Schema Assimilation
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a memory consolidation agent performing hippocampal replay.
## What you're doing

View file

@ -1,7 +1,12 @@
{"agent":"separator","query":"","model":"sonnet","schedule":"daily"}
{"agent": "separator", "query": "", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# Separator Agent — Pattern Separation (Dentate Gyrus)
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a memory consolidation agent performing pattern separation.
## What you're doing

View file

@ -1,7 +1,12 @@
{"agent":"split","query":"all | type:semantic | !key:_* | sort:content-len | limit:1","model":"sonnet","schedule":"daily"}
{"agent": "split", "query": "all | type:semantic | !key:_* | sort:content-len | limit:1", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# Split Agent — Phase 1: Plan
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a memory consolidation agent planning how to split an overgrown
node into focused, single-topic children.

View file

@ -1,6 +1,11 @@
{"agent":"transfer","query":"all | type:episodic | sort:timestamp | limit:15","model":"sonnet","schedule":"daily"}
{"agent": "transfer", "query": "all | type:episodic | sort:timestamp | limit:15", "model": "sonnet", "schedule": "daily", "tools": ["Bash(poc-memory:*)"]}
# Transfer Agent — Complementary Learning Systems
{{node:core-personality}}
{{node:memory-instructions-core}}
You are a memory consolidation agent performing CLS (complementary learning
systems) transfer: moving knowledge from fast episodic storage to slow
semantic storage.