// Slide 22: Long-term memory -- InMemoryStore + namespace // Code slide: cross-thread memory, semantic search over stored facts. const ds = require('./design-system'); function createSlide(pres, theme) { const slide = pres.addSlide(); ds.helpers.slideBase(slide, pres, theme); ds.helpers.addHeader(slide, pres, theme, { eyebrow: 'STAGE 1: CHAINS', section: 'Memory', title: 'Долгосрочная память: store + namespace', sectionNumber: 1, }); ds.helpers.addCodeBlock(slide, pres, theme, { x: 0.5, y: 1.5, w: 9.0, h: 3.25, language: 'python', filePath: 'examples/memory_long.py', code: [ 'from langgraph.store.memory import InMemoryStore', 'from langchain.agents import create_agent', 'from langchain.embeddings import init_embeddings', '', '# Store может быть in-memory (dev) или Postgres (prod)', 'store = InMemoryStore(', ' index={"embed": init_embeddings("openai:text-embedding-3-small"),', ' "dims": 1536},', ')', '', 'agent = create_agent(', ' model="openai:gpt-4.1-mini",', ' tools=[...],', ' store=store,', ')', '', '# Namespace = ("user-id", "facts") -- разделение по пользователям', 'ns = ("user-42", "facts")', 'store.put(ns, "pref-1", {"text": "User prefers concise answers."})', '', '# В новой сессии store.search(ns, query="preferences") вернёт факты', ].join('\n'), }); ds.helpers.addCallout(slide, pres, theme, { x: 0.5, y: 4.85, w: 9.0, h: 0.3, kind: 'info', text: 'Long-term memory переживает thread. Идеальна для user preferences, summary прошлых сессий, learned facts.', }); ds.helpers.addSourceLine(slide, pres, theme, { source: 'docs.langchain.com/oss/python/langgraph/memory', }); ds.helpers.addPageNumber(slide, pres, theme, 22); } module.exports = { createSlide };