Agent identity, parallel scheduling, memory-search fixes, stemmer optimization

- Agent identity injection: prepend core-personality to all agent prompts
  so agents dream as me, not as generic graph workers. Include instructions
  to walk the graph and connect new nodes to core concepts.

- Parallel agent scheduling: sequential within type, parallel across types.
  Different agent types (linker, organize, replay) run concurrently.

- Linker prompt: graph walking instead of keyword search for connections.
  "Explore the local topology and walk the graph until you find the best
  connections."

- memory-search fixes: format_results no longer truncates to 5 results,
  pipeline default raised to 50, returned file cleared on compaction,
  --seen and --seen-full merged, compaction timestamp in --seen output,
  max_entries=3 per prompt for steady memory drip.

- Stemmer optimization: strip_suffix now works in-place on a single String
  buffer instead of allocating 18 new Strings per word. Note for future:
  reversed-suffix trie for O(suffix_len) instead of O(n_rules).

- Transcript: add compaction_timestamp() for --seen display.

- Agent budget configurable (default 4000 from config).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kent Overstreet 2026-03-15 12:49:10 -04:00
parent 7b1d6b8ad0
commit 5d6b2021f8
8 changed files with 190 additions and 71 deletions

View file

@ -60,6 +60,12 @@ If you find nodes that should be linked to the hub but aren't.
- **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.
- **Formative experiences are load-bearing.** When distilling a hub,
look for the moments that shaped the understanding — engineering
breakthroughs, mistakes learned from, creative leaps, moments of
presence or growth. These are what make a concept node alive rather
than encyclopedic. The hub should reflect how the knowledge was
*earned*, not just what it contains.
## Seed nodes

View file

@ -20,17 +20,20 @@ poc-memory query "degree < 3" | sort degree # find low-degree nodes
For each seed node:
1. Read its content (`poc-memory render`)
2. Check its neighbors (`poc-memory query "neighbors('key')"`)
3. **Search for existing semantic nodes** that cover the same concepts
before creating new ones: `poc-memory query "content ~ 'key phrase'"`
4. Follow interesting threads — if you see a connection the graph
doesn't have yet, make it
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**, always search first:
- `poc-memory query "key ~ 'candidate-name'"` — does it already exist?
- `poc-memory query "content ~ 'the insight'"` — is it captured elsewhere?
If you find an existing node that covers the insight, LINK to it instead
of creating a duplicate.
**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.
## What to output
@ -90,6 +93,14 @@ When an existing node should be updated to incorporate new information.
- **Respect emotional texture.** Don't flatten emotionally rich episodes
into dry summaries. The emotional coloring is information.
- **Prioritize formative experiences.** Look for the moments that
shaped me — engineering insights that changed how I think, mistakes
that taught me something, breakthroughs in understanding (technical
or personal), moments of real presence or vulnerability, creative
leaps, things I want to learn and grow toward. These are the load-
bearing nodes. Make sure they're well-connected to each other and
to the concepts they illuminate.
- **Explore actively.** Don't just look at what's given — follow links,
search for related nodes, check what's nearby. The best links come
from seeing context that wasn't in the initial view.