0Pricing
AI Agents · Урок

Почему графы лучше плоских цепочек

Реальным агентам нужны циклы, повторные попытки и условия — ориентированные ациклические графы и графы выражают то, чего не могут цепочки.

«Почему графы лучше плоских цепочек» — бесплатный урок AI Agents на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Когда цепочки не справляются

Цепочки LCEL отлично подходят для линейных процессов: A -> B -> C. Но возникают сложности, когда нужны:

  • Циклы (повторять попытки до успеха)
  • Условное ветвление (выбирать A или B на основе состояния)
  • Паузы с участием человека
  • Сохранение состояния между вызовами

Настоящие агенты — это графы

Агенты принимают решения шаг за шагом. Настоящий агент может:

  1. Составить Plan
  2. Найти информацию
  3. Если информация найдена — подготовить ответ; если нет — выполнить поиск снова
  4. Проверить результат
  5. Если результат неверен — исправить его; иначе — вернуть

Это граф, а не линия.

Знакомство с LangGraph

LangGraph (от команды LangChain) позволяет определять агентов как графы:

  • Узлы — функции, которые читают и обновляют состояние
  • Рёбра — определяют, какой узел запускается следующим
  • Состояние — общий сохраняемый словарь

Nodes Are Just Functions

from langgraph.graph import StateGraph

class AgentState(TypedDict):
    messages: list
    plan: str
    answer: str

def plan_step(state: AgentState) -> AgentState:
    plan = generate_plan(state['messages'])
    return {'plan': plan}

Edges Connect Nodes

from langgraph.graph import StateGraph, END

graph = StateGraph(AgentState)
graph.add_node('plan', plan_step)
graph.add_node('search', search_step)
graph.add_node('answer', answer_step)

graph.set_entry_point('plan')
graph.add_edge('plan', 'search')
graph.add_edge('search', 'answer')
graph.add_edge('answer', END)

app = graph.compile()

Running the Graph

result = app.invoke({'messages': [{'role': 'user', 'content': 'What is RAG?'}]})
print(result['answer'])

Обновления состояния объединяются

Когда узел возвращает частичный словарь, LangGraph объединяет его с состоянием. Вам не нужно записывать всё состояние на каждом шаге.

Условное ветвление

Используйте add_conditional_edges для маршрутизации на основе состояния:

def needs_more_info(state):
    if state['confidence'] < 0.7:
        return 'search'
    return 'answer'

graph.add_conditional_edges('plan', needs_more_info, {
    'search': 'search',
    'answer': 'answer'
})

Loops Are Just Edges Back

graph.add_edge('search', 'plan')   # loop back to planner
# The planner decides if more search is needed.

Визуализация

LangGraph создаёт диаграммы Mermaid для Вашего графа — это отлично подходит для отладки структуры:

from IPython.display import Image
Image(app.get_graph().draw_mermaid_png())

В сравнении с циклами while, написанными вручную

То же самое можно сделать с помощью цикла while в Python. LangGraph добавляет:

  • Явную структуру графа (которую можно визуализировать)
  • Встроенное создание контрольных точек
  • Потоковую передачу обновлений состояния
  • Примитивы для взаимодействия с человеком

LangGraph + LCEL

Узлом может быть любой вызываемый объект, включая цепочки LCEL. Комбинируйте их:

summarise_chain = prompt | model | parser

def summarise_node(state):
    return {'summary': summarise_chain.invoke(state['text'])}

Когда следует использовать граф

Какой сценарий больше всего выигрывает от использования LangGraph по сравнению с плоской цепочкой LCEL?

Итоги

Графы лучше цепочек, когда нужны циклы, ветвления, сохранение данных или взаимодействие с человеком. LangGraph предоставляет необходимую структуру.

Часто задаваемые вопросы

Урок «Почему графы лучше плоских цепочек» бесплатный?

Да — полный текст урока «Почему графы лучше плоских цепочек» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.

Чему я научусь в уроке «Почему графы лучше плоских цепочек»?

Реальным агентам нужны циклы, повторные попытки и условия — ориентированные ациклические графы и графы выражают то, чего не могут цепочки. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Agents?

Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Почему графы лучше плоских цепочек»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Agents?

Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Почему графы лучше плоских цепочек
  2. Узлы, рёбра и состояние
  3. Условная маршрутизация и ветвление
  4. Сохранение состояния графа (контрольные точки)
← Назад к AI Agents