stemedb/ai-lookup/features/gardener.md
jordan 3cfaa1e1d3 feat: Complete Phase 1 (The Spine) - storage foundation
Phase 1 delivers the complete durability and storage layer:

- WAL with crash recovery: Append-only journal with BLAKE3 checksums,
  fsync guarantees, and proper seek-to-EOF on reopen
- Storage engine: sled-backed KVStore with scan_prefix for range queries
- Content-addressed storage: H:{hash}, V:{hash}, E:{hash} key patterns
- Ingestor: Background worker tailing WAL, writing to KV with 8-byte
  aligned record headers for rkyv zero-copy deserialization
- Comprehensive tests: 31 tests covering crash recovery, round-trips,
  and multi-cycle durability

New crates: stemedb-wal, stemedb-storage, stemedb-ingest

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 14:15:34 -07:00

58 lines
1.9 KiB
Markdown

# The Gardener (TrustRank Back-Propagation)
> **Quick Ref:** Background worker that penalizes agents when corrections are made
## The Problem
Agents are stateless. When an agent makes a mistake (uses `requests` instead of `axios`), you correct it. But the agent doesn't "learn"—it might make the same mistake next session.
Current training uses "Golden Trajectories" (perfect examples). Mistakes are discarded, so agents never learn "don't do X because it fails."
## The Solution
The Gardener is a background worker that:
1. Detects when a user correction supersedes an agent assertion
2. Calculates the "delta" (how wrong the agent was)
3. Back-propagates the error to the agent's TrustRank
```rust
struct GardenerJob {
pub agent_id: AgentId,
pub topic: String, // e.g., "http_libraries"
pub prediction: Value, // What agent said
pub ground_truth: Value, // What was correct
pub delta: f32, // How wrong (0.0 to -1.0)
}
// Example:
// Agent asserted "requests" (confidence 0.8)
// User asserted "axios" (confidence 1.0)
// Gardener calculates: delta = -0.3
// Agent's TrustRank for topic "http_libraries" drops by 0.15
```
## Effects
**Next time this agent predicts an HTTP library:**
1. Its confidence is mathematically penalized
2. It's forced to look for external verification
3. Or the system routes to a different agent with higher TrustRank
## Resurrection Mechanics
When a constraint is queried and used successfully:
- `last_verified` updates to NOW()
- Confidence decay resets
- Assertion stays in "hot path"
When NOT used in 6 months:
- Confidence decays toward 0
- Moves to "cold store"
- Still queryable for audit
## Related
- [Negative Constraints](../services/lifecycle.md) - What gets stored
- [Lens::Constraints](../services/lens.md) - How it's retrieved
- [use-cases/agile-agent-team.md](../../use-cases/agile-agent-team.md#feature-6) - Full workflow