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

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

@potapov_me

Платформа

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

Контент

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

Компания

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

Аккаунт

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

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

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Функциональный API
functional_api

Функциональный API

Точки входа (@entrypoint), задачи (@task), сравнение графового и функционального API, параллельная обработка.

Функциональный API

Функциональный API позволяет добавить возможности LangGraph к существующему коду с минимальными изменениями — без построения явного графа.

#Два строительных блока

@entrypoint отмечает функцию как точку входа рабочего процесса. @task — отдельная единица работы, результат которой сохраняется в контрольной точке.

from langgraph.func import entrypoint, task from langgraph.types import interrupt @task def write_essay(topic: str) -> str: return f"Эссе на тему: {topic}" @entrypoint(checkpointer=InMemorySaver()) def workflow(topic: str) -> dict: essay = write_essay(topic).result() is_approved = interrupt({"essay": essay, "action": "Одобрить?"}) return {"essay": essay, "is_approved": is_approved}

#Правила

Точка входа принимает ровно один позиционный аргумент. Входные и выходные данные должны быть JSON-сериализуемыми. Задачи можно вызывать только из точки входа, другой задачи или узла графа. Задачи возвращают future — вызовите .result() для получения значения.

#Инъектируемые параметры

При объявлении точки входа можно запросить previous (состояние предыдущей контрольной точки), store (хранилище для долговременной памяти), writer (для стриминга) и config (конфигурация выполнения).

#Сравнение с графовым API

Графовый API — декларативный подход с явными узлами, рёбрами и общим состоянием. Функциональный API — императивный подход со стандартными Python-конструкциями. Оба используют один runtime, их можно комбинировать.

ХарактеристикаГрафовый APIФункциональный API
Управление потокомЯвные рёбра и условияСтандартный Python
СостояниеОбщее для всех узловИнкапсулировано в функции
Контрольные точкиПосле каждого супершагаПосле выполнения задач
ВизуализацияПоддерживаетсяНе поддерживается

#Параллельная обработка

Задачи можно запускать параллельно — они возвращают future немедленно:

@entrypoint(checkpointer=InMemorySaver()) def crawl_website(urls: list[str]) -> dict: futures = [fetch_page(url) for url in urls] pages = [f.result() for f in futures] return {"pages": pages}

#Путешествие во времени

Через entrypoint.final можно разделить возвращаемое и сохраняемое значения — возвратить пользователю одно, а в контрольную точку сохранить другое:

@entrypoint(checkpointer=checkpointer) def workflow(data: str, *, previous: str = None) -> entrypoint.final[str, str]: if previous: return entrypoint.final(value=previous, save=previous) result = process(data).result() return entrypoint.final(value=result, save=result)

Далее: Мультиагентные системы