Skip to content

v0.1.7 — memory & handoffs

Choose a tag to compare

@danielstpaul danielstpaul released this 20 Jul 23:13

Memory — graph-shaped, not a graph database. Facts as subject · attribute · content triples with provenance (which turn wrote it) and supersession (a new fact about the same subject+attribute retires the old one — temporal versioning without a temporal store).

# the model calls the built-in remember tool… and it PARKS in your inbox first:
remember(subject: "author:jane", attribute: "report_format",
         content: "prefers CSV", shared: true)

Writes are approval-gated by default (config.memory_approval = :never opts out). recall digs past the bounded few memories injected into each turn. Scopes: private per-agent, or shared: true for the whole staff. Your domain data stays in your own tables — memory is for the fuzzy residue with no natural home. Multi-hop edges are a deliberate not-yet.

Handoffs — staff composition without agent chatter. handoff files a self-contained brief that starts a linked session for another named agent — async by default, await: true runs inline and returns their answer (correct under production isolate_steps). Exactly-once through the ledger; refuses self-handoffs, unknown targets, cycles, chains deeper than 3. Free-form agent-to-agent conversation stays deliberately unblessed.

New migration — run bin/rails silas:install:migrations db:migrate on upgrade. Dogfooded in a real multi-agent app before release (cross-agent shared memory + awaited handoffs verified end-to-end). 186 examples, 0 failures.

gem install silas · 0.1.7