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();