Как перестать писать спагетти-код для нейросетей и начать использовать паттерны

01 мар 2026

Репозиторий давно не обновлялся

Последнее обновление было 8 месяцев назад.

7,635
1,001
52
8 месяцев

Знакомая ситуация: вы начинаете собирать простого AI-ассистента, и поначалу всё идет гладко. Один промпт, один запрос к API — и вот оно работает. Но как только задача усложняется, код превращается в бесконечную цепочку if-else, попытки обработать ошибки превращаются в костыли, а логика принятия решений моделью становится абсолютно непрозрачной.

Недавно я наткнулся на репозиторий agentic-design-patterns-cn, который по сути является живым учебником по архитектуре умных систем. Это перевод книги Антонио Гулли «Agentic Design Patterns», и хотя проект на китайском и английском, его ценность для разработчика трудно переоценить. Автор раскладывает хаос «агентного» программирования на понятные чертежи.

Зачем нам вообще паттерны для AI

Когда мы говорим об агентах, мы подразумеваем системы, которые могут сами решать, какие инструменты вызвать и в каком порядке действовать. Проблема в том, что без четкой структуры такие системы ведут себя непредсказуемо.

Проект предлагает отойти от концепции «один большой промпт решит всё» и перейти к модульной сборке. Вместо того чтобы заставлять модель делать всё сразу, мы строим систему из маленьких, предсказуемых блоков.

Что внутри этого руководства

Репозиторий разбит на логические части, каждая из которых закрывает конкретную «боль» при разработке. Вот несколько подходов, которые мне показались наиболее практичными.

Реклама

Цепочки и маршрутизация

Вместо одного гигантского запроса используется Prompt Chaining. Вы разбиваете сложную задачу на этапы, где результат предыдущего шага становится входными данными для следующего. Это на порядок повышает стабильность ответов.

Routing (маршрутизация) позволяет экономить токены и время. Если пользователь задает простой вопрос, зачем дергать тяжелую GPT-4o? Маршрутизатор определит тип запроса и отправит его либо легковесной модели, либо специализированному агенту.

Рефлексия и самопроверка

Один из самых крутых паттернов — Reflection. Это когда одна модель генерирует ответ, а вторая (или та же самая, но с другой ролью) его критикует. В репозитории подробно описано, как настроить этот цикл обратной связи, чтобы агент сам исправлял свои ошибки до того, как их увидит пользователь.

Память и контекст

Все знают про RAG, но в этом проекте тема раскрыта глубже. Рассматривается управление краткосрочной и долгосрочной памятью, а также использование Model Context Protocol (MCP) — нового стандарта для взаимодействия моделей с внешними данными.

Как это пощупать в коде

В репозитории есть папка codes/, где лежат примеры на Python с использованием LangChain и LangGraph. Например, вот как выглядит базовая логика цепочки промптов:

# Пример логики из первой главы
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

# Первый шаг: генерация идеи
step1_prompt = ChatPromptTemplate.from_template("Придумай название для {topic}")
# Второй шаг: оценка идеи
step2_prompt = ChatPromptTemplate.from_template("Насколько удачно название '{name}' для IT-проекта?")

# Соединяем в цепочку
chain = step1_prompt | model | (lambda x: {"name": x.content}) | step2_prompt | model

Самое удобное, что для каждой главы есть ссылка на Google Colab. Можно не разворачивать окружение локально, а просто зайти и запустить код в браузере.

Кому это пригодится

Если вы только начинаете баловаться с OpenAI API, возможно, это покажется избыточным. Но если вы строите что-то сложнее чат-бота для заказа пиццы, эти паттерны сэкономят вам недели отладки.

Особенно советую заглянуть в разделы про:

  • Многоагентные системы: как заставить несколько нейросетей работать в команде.
  • Обработку исключений: что делать, если модель «галлюцинирует» или выдает невалидный JSON.
  • Безопасность (Guardrails): как выставить рамки, за которые агент не должен выходить.

Проект agentic-design-patterns-cn — это отличная база знаний. Несмотря на то, что основной текст переведен на китайский, структура и примеры кода на английском языке делают его доступным для любого разработчика. Это не просто сборник советов, а попытка систематизировать новую область программирования, где вместо жестких алгоритмов мы работаем с вероятностями.

Если вы чувствуете, что ваши AI-скрипты становятся слишком сложными для поддержки — самое время изучить, как эти задачи решают профессионалы.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.