Weave

Memory & Sessions

Maintain state across multiple turns and sessions.

Results, Memory & State

Weave provides session memory persistence and context token window management to maintain state across long-running multi-turn user interactions.


Session Persistence with MemoryManager

import {
  AgentBuilder,
  OpenAIAdapter,
  MemoryManager,
  FileMemoryStore,
} from 'Weave';

const memoryStore = new FileMemoryStore({ storageDir: './.sessions' });
const memoryManager = new MemoryManager({ store: memoryStore, ttlSeconds: 86400 });

const adapter = new OpenAIAdapter({ apiKey: process.env.OPENAI_API_KEY!, model: 'gpt-4o' });

const agent = new AgentBuilder()
  .name('StatefulAgent')
  .llm(adapter)
  .memory(memoryManager)
  .build();

async function runSession() {
  const sessionId = 'user_99_session_1';

  // Turn 1
  await agent.run('Hi, my favorite language is TypeScript.', { sessionId });

  // Turn 2 (Session state is loaded automatically from storage)
  const result = await agent.run('What language did I say I like?', { sessionId });
  console.log(`Memory Recall Response: ${result.output}`);
}

runSession().catch(console.error);

Context Window Pruning with ContextPruner

Prevent context window overflow and reduce token API overhead using ContextPruner:

import { ContextPruner } from 'Weave';

const pruner = new ContextPruner({
  maxTokens: 4000,
  preserveSystemInstructions: true,
  preserveRecentMessages: 6,
  strategy: 'sliding-window',
});

const agent = new AgentBuilder()
  .name('PrunedAgent')
  .llm(adapter)
  .contextPruner(pruner)
  .build();