v0.1.7 — memory & handoffs
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