Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Память и сохранение состояния
persistence

Память и сохранение состояния

Контрольные точки (чекпоинтеры), долговременная память (хранилище), InMemorySaver, PostgresSaver, Store.

Память и сохранение состояния

LangGraph предоставляет две системы памяти: контрольные точки для кратковременной памяти в рамках потока и хранилище для долговременной памяти между потоками.

#Контрольные точки (чекпоинтеры)

Контрольная точка — снимок состояния графа в определённый момент выполнения. Позволяет продолжить разговор после паузы, восстановиться после сбоя, вернуться к предыдущему состоянию.

Каждый поток выполнения идентифицируется thread_id. При повторном использовании того же thread_id граф загружает последнее сохранённое состояние.

#Типы чекпоинтеров

InMemorySaver хранит данные в оперативной памяти — подходит для разработки, но данные теряются при перезапуске. Для продакшена используйте PostgresSaver (PostgreSQL) или SqliteSaver (файловая база).

from langgraph.checkpoint.memory import InMemorySaver checkpointer = InMemorySaver() graph = builder.compile(checkpointer=checkpointer) config = {"configurable": {"thread_id": "thread-1"}} result = graph.invoke(input, config=config)

#Использование с агентом LangChain

Чекпоинтер передаётся в create_agent. После этого агент сохраняет историю диалога между вызовами с одним thread_id:

from langchain.agents import create_agent from langgraph.checkpoint.memory import InMemorySaver from langchain_core.utils.uuid import uuid7 agent = create_agent( model="openai:gpt-4o-mini", tools=[], checkpointer=InMemorySaver(), ) config = {"configurable": {"thread_id": str(uuid7())}} # Первый вызов — агент запоминает контекст agent.invoke({"messages": [{"role": "user", "content": "Меня зовут Алексей"}]}, config=config) # Второй вызов — агент помнит имя agent.invoke({"messages": [{"role": "user", "content": "Как меня зовут?"}]}, config=config)

#Ограничения

Длина thread_id для PostgresSaver ограничена 255 символами. InMemorySaver не сохраняет данные между перезапусками. В длинных разговорах контрольные точки накапливаются — удаляйте старые или настройте политику хранения.

#Долговременная память (хранилище)

Хранилище (Store) persistирует данные вне состояния графа, делая их доступными из разных потоков. Используется для предпочтений пользователя, фактов, общих знаний.

from langgraph.store.memory import InMemoryStore store = InMemoryStore() graph = builder.compile(checkpointer=checkpointer, store=store)

Доступ к хранилищу из узлов — через runtime.store:

from langgraph.runtime import Runtime def my_node(state: State, runtime: Runtime): # Чтение item = runtime.store.get(("user_preferences",), "theme") # Запись runtime.store.put(("user_preferences",), "theme", {"value": "dark"})

#Сравнение чекпоинтеров и хранилища

Чекпоинтер хранит снимки состояния графа в рамках одного потока — для истории диалога, прерываний, восстановления после сбоя. Хранилище хранит пользовательские данные между потоками — для предпочтений, фактов, общих знаний. В большинстве приложений используются оба механизма одновременно.

Далее: Управление контекстом