ACAgentic Craft

Intermediate~28 minHazelJS

Memory Layers in HazelJS

Wire enableMemory / MemoryModule peers without collapsing every store into the prompt—with execute examples.

Authors
editorial-team
Published
Last reviewed
Progress is stored locally in this browser.

Direct answer

Use MemoryModule / MemoryService / documented stores for long-term memory peers; toggle enableMemory per execute and pass a stable sessionId. Keep working context assembled per step—do not dump the entire store into every prompt.

Pattern: /patterns/memory-layers. Docs: Memory, guide.

Note: AgentMemoryGraph appears in capability tables but lacks full usage docs—do not depend on it until documented.

Worked example — session memory on execute

typescript
@Agent({
  name: 'concierge',
  enableMemory: true,
  maxSteps: 8,
})
export class ConciergeAgent {
  @Tool({ description: 'Save a short preference note' })
  async rememberPreference(input: { key: string; value: string }) {
    // Prefer MemoryService APIs from @hazeljs/memory when wired in DI
    return { ok: true, key: input.key };
  }
}

// Same user across turns — sessionId correlates memory
await runtime.execute('concierge', 'I prefer email over SMS', {
  sessionId: 'user-42',
  userId: 'user-42',
  enableMemory: true,
  maxSteps: 6,
});

await runtime.execute('concierge', 'How should we notify you?', {
  sessionId: 'user-42',
  enableMemory: true,
});

Layer map

LayerLives inExample
WorkingAssembled per stepGoal + last tool obs
SessionMemory peer + sessionId“prefers email”
Long-termPersistent memory storeAccount facts
ArtifactsObject store / URLsPDF invoice pointer

Next

/learn/memory-and-state/durable-run-state-vs-prompt-memory

Artifact: Layer map: working / session / long-term / artifacts for one agent

Sources

Related