<Memory> provider and every task inside it can recall relevant context
before it runs, expose remember/recall tools to its agent while it runs,
and retain a digest of what it produced after it finishes: durably, across
runs, in a Hindsight memory bank stored in
your own Postgres.
Upgrading
The Memory component
- Declarative scope.
bank/banks,tags,recall("auto", a fixed query, orfalse),budget,maxTokens,primers(mental models injected verbatim),retain, andtools: inherited by descendant tasks through context, overridable per task via the existingmemoryprop. Both converge on the same descriptor, so graph extraction and the engine see one shape. - Frozen recall snapshots. Recall runs once per node and iteration and is reused across retries, so retries stay deterministic and prompt-cache friendly. Recall failures and timeouts degrade to no injection with a warning: memory never fails a task.
- Bounded injection. Every injected block and tool result is capped by
maxTokens(default 2048). - Async retention. With
retain="on-complete", a digest of the task’s output is retained after the result resolves: fire-and-forget, never blocking completion. Run and session identity travel as metadata and stable document ids, never as tags. - Postgres-family feature. Set
HINDSIGHT_URL(plus optionalHINDSIGHT_API_KEY) to activate the Hindsight-backed store; without it, the existing local SQLite facts store and behavior are unchanged. Reference deployment env plumbing (systemd, k8s, docker-compose) ships indeploy/reference/.
Upgrade notes
- Tasks with an active bank-based memory config bypass the durable output
cache (recalled context is a mutable input that is not part of the cache
identity). Legacy
namespace/object-formrecall/remember/threadIdmetadata remains inert and keeps its previous cache semantics. HindsightMemoryStoreassumes a single writer per contract store; the limitation and its invariant tests are documented in the memory guides.defineToolmoved to a shared@smithers-orchestrator/tool-contextpackage re-exported from the existing entry points: imports keep working.