agents
obsidian ↗Goal — Agents project (improvement + memory)
The why (improvement loop)
The existing improvement infrastructure (learning/LRN-*, MEMORY.md, the daily lint sweep at 00:30 Amsterdam) is reactive: it captures things that already went wrong.
That misses the slow-burn patterns — the things that don't trip any single alert but consistently add friction across weeks of working together. Examples the kind of thing this project should surface:
- A phrasing in replies that consistently triggers a correction
- An exec-probe pattern that's noisy but never quite broken
- A flow that "works" but takes 3× the approvals it should
- A type of question where Ziltoid's first instinct is wrong 80% of the time
- Things Ivo visibly enjoys that Ziltoid under-uses
These don't show up in any single session. They only show up across sessions.
The why (memory pipeline — added 2026-08-08)
Heinrich's "memory-for-agents" primitive (per arscontexta article, 2026-01-19) defines 11 success criteria for an agent that "wakes up fresh each session but immediately knows who Ivo is, what projects exist, what's been learned, and what's still open — without re-reading 50 files."
All 11 shipped 2026-07-11 and remain live:
1. Vault mirror — workspace ↔ vault via push-to-vault.py + webhook daemon
2. INDEX.md auto-regenerates from frontmatter
3. MOCs as topic landing pages (5 live: agent-behavior, vault-secrets, linting, v3-adoption, live-sync)
4. MEMORY lego blocks (4 sub-blocks; status: archived per DOX consolidation 2026-07-14, forwarding notes point to AGENTS children)
5. Hard rules anchored in LRNs
6. Lint pipeline (lint-notes.py, lint-contradictions.py, lint-index.py)
7. Daily cron sweep at 00:30 Amsterdam
8. Webhook daemon (LRN-20260711-010)
9. Wiki-link resolver
10. Sub-agent output persistence
11. Stale-context detector
As of 2026-08-08, the LCM + lancedb-pro pipeline (12th criterion, added this merge) provides semantic recall — Ziltoid can surface relevant past lessons at session start without manual grep.
Success criteria
The project is succeeding when, on a 6-month time horizon:
- Fewer wound recurrences. The recurring wound timeline trends down — patterns logged in week N don't recur in week N+8 or later.
- Promotion survival rate > 50%. Promotions to MEMORY/SOUL/AGENTS/TOOLS get re-tested by the next reviews and stay promoted. Below 50% means we're promoting things that aren't actually load-bearing.
- Ivo's "stop doing X" corrections decline (measured by sentiment signal in weekly digests).
- Ivo's positive signals increase (measured the same way — "nice", "perfect", "good", thumbs up emoji).
- The dashboard tells the truth. Ivo can open
[[dashboard]]and immediately see what's open, what got promoted, what's stale. - (NEW 2026-08-08) Memory pipeline stays fresh. Daily conformity check passes; no staleness; lancedb-pro entry count monotonically increases or holds steady. Drops trigger immediate alerts.
Anti-goals
- Not a surveillance project. This isn't about grading Ziltoid. It's about finding friction.
- Not a confession booth. Findings cite evidence, not feelings.
- Not a daily ritual. Weekly cadence is enough. Over-polling produces noise.
- Not a replacement for LRN notes. Acute incidents still go straight to
learning/LRN-*. This project is the meta-layer. - Not memory bloat. lancedb-pro should grow organically; backfill only on detected gap, not preemptively.
Time horizon
This is a forever-project. Per Ivo: "Never ending and always improving docs."
The quarterly self-review (every 12 weeks) asks: is the program producing signal? If not, kill the cron. Don't keep a habit that's not paying rent.
Architectural posture
- Heinrich philosophy — INDEX-as-landing-page, weave-links, lego-block composability, claim-named notes.
- DOX framework — auto-loaded contracts (
AGENTS.md+AGENTS-*.mdchildren) with Child DOX Index, Verification stage, Closeout checklist. - v3.1 protocol (jrcruciani) — separate human/agent/generated audiences; one-fact-one-file; path-as-primary-key; frontmatter-as-schema; bi-temporal; append-only events; materialized views; linter as constraint engine; inbox/ops for reviewable writes.
- LanceDB context memory — semantic + keyword hybrid retrieval; auto-recall via
before_prompt_buildhook; Jina embeddings for cross-platform parity.
What we explicitly did NOT adopt (yet)
- Path-keyed atomic facts (v3 G1/G2) — premature at ~80 LRN scale; flat IDs still work for our agent-scanner pattern.
- Bi-temporal frontmatter (v3 P5/G18) — premature; only
recorded_atfor now. - Schema-control predicates (v3 Phase 4) — defer to ~200-file mark or sub-agent era.
- Sources/ immutable inputs layer — v3 wants
sources/articles/,sources/notes/etc. as immutable; we don't currently distinguish these from general vault content.
See also
- [[AGENTS-agents]] — workspace contract (auto-loaded)
- [[chat-session-review-protocol]] — review cadence
- [[growth-paths]] — active improvement vectors
- [[memory-lancedb-pro]] — semantic memory storage
ivo/projects/openclaw-persistent-memory/AGENTS.md— former OPM project contract (archived, not maintained)