Главная / Статьи / Объяснение агентных ИИ: от языковых моделей к автономным агентам

Объяснение агентных ИИ: от языковых моделей к автономным агентам

Структурированный обзор того, как большие языковые модели превращаются в агентные системы с помощью инструментов, памяти, планирования, архитектур многих агентов и интеграции MCP.

4402 слов

Большие языковые модели изменили способ работы с программным обеспечением.

Вместо того чтобы передавать компьютеру строгую последовательность инструкций, теперь можно сформулировать запрос таким образом:

«Выясните, почему счет этого клиента увеличился, проверьте детали контракта и использования ресурсов, а если сумма оказалась неверной — откройте заявку».

Традиционное приложение потребовало бы жестко заданной последовательности действий для выполнения каждого из этих шагов.

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

Это поднимает естественный вопрос:

Как мы перешли от LLM, которые просто генерируют текст, к системам, способным выполнять реальные задачи?

Чтобы понять агентские ИИ, необходимо проследить этот процесс шаг за шагом.

Этот процесс развивается на нескольких отдельных этапах.

LLM

User → Prompt → LLM → Response

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

Рассмотрим следующий запрос:

«Объясните, что такое трансформер.»

LLM может ответить непосредственно, поскольку необходимые знания уже содержатся в её обученных параметрах вместе с предоставленным контекстом.

Теперь рассмотрим другой запрос:

«Какая сейчас погода в Бангалоре?»

Здесь модели требуется актуальная информация, которая почти наверняка не входит в её обучающие данные. Эта проблема указывает на следующий этап.

RAG

User → Retrieve Knowledge → LLM → Response

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

Например:

"Какова политика возврата средств нашей компании?"

Система загружает соответствующий текст правил и передаёт его в LLM в качестве части запроса.

Метод RAG помогает преодолеть пробел в знаниях.

Однако остаётся ещё одно ограничение:

Что происходит, когда системе необходимо выполнить действие вместо простого ответа на вопрос?

LLM с использованием инструментов

User → LLM → Tool → Result → LLM → Response

На этом этапе модель обретает возможность взаимодействовать с внешними системами.

Возьмём ChatGPT в качестве примера: когда вы задаёте вопрос

"Какая погода сейчас?"

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

Инструменты по сути открывают путь от большой языковой модели во внешний мир.

Тем не менее здесь есть важная нюанс, на который стоит обратить внимание.

Если разработчик явно закодирует алгоритм выполнения, например:

Question → Weather API → Response

последовательность шагов остается фиксированной заранее.

Агент развивает эту идею дальше.

Агент

Goal
 ↓
Reason
 ↓
Choose Action
 ↓
Use Tool
 ↓
Observe Result
 ↓
Decide Next Action
 ↓
Repeat
 ↓
Complete Goal

Ключевое отличие заключается в динамическом принятии решений. Рабочий процесс следует маршруту, заданному разработчиком заранее. Однако агент может самостоятельно выбирать маршрут на основе того, что он узнает по пути.

Именно способность динамически выбирать следующий шаг в основе своей сути определяет поведение агента.

Что такое искусственный интеллект-агент?

Вот рабочее определение:

Агент ИИ — это система, основанная на LLM, которая достигает поставленной цели путем динамического выбора действий, используя соответствующие инструменты и контекст, отслеживая результаты этих действий и повторяя этот цикл до тех пор, пока цель не будет достигнута или не сработает какое-либо условие остановки.

Как правило, агент объединяет в себе:

LLM + Instructions + Tools + State + Memory + Context + Orchestration + Guardrails

LLM отвечает за логические рассуждения и принятие решений.

Инструменты обеспечивают конкретные возможности.

Состояние отслеживает то, что происходит в данный момент.

Память обеспечивает преемственность во времени.

Ограничения устанавливают рамки поведения.

Оркестрация связывает все эти компоненты воедино.

Суть заключается в следующем:

Агент не просто генерирует ответ. Он может определить направление действий и его реализовать.

Зачем нам нужны агенты?

Теперь, когда у вас есть рабочее определение агента, возникает естественный вопрос:

Зачем нужны все эти дополнительные механизмы?

На самом деле не каждая задача требует использования агента.

Когда рабочий процесс следует фиксированной, предсказуемой последовательности:

Receive request
 ↓
Validate
 ↓
Call API
 ↓
Return result

простая детерминистическая схема обычно бывает проще и надежнее.

Теперь сравните это с подобным запросом:

«Выясните, почему в этом месяце увеличились расходы на облака».

Здесь нет единственного заранее определенного пути. Системе может потребоваться пройти через что-то вроде:

Check billing
 ↓
Find Azure costs increased
 ↓
Check deployments
 ↓
Find new service
 ↓
Check service usage
 ↓
Find abnormal traffic
 ↓
Investigate logs
 ↓
Generate explanation

Обратите внимание на происходящее: у агента нет способа узнать, что необходимо выполнить шаг 5, пока он еще не завершил шаг 2. Результат каждого действия определяет следующий шаг.

Именно в таких ситуациях подход, основанный на агентах, оправдывает свою сложность.

Простое правило

Используйте рабочие процессы, когда последовательность шагов известна заранее. Обращайтесь к агентам, когда следующий шаг во многом зависит от того, что будет обнаружено по пути.

Цикл агента

Как только вы передаёте агенту цель, что на самом деле происходит внутри?

В центре каждого агента находится цикл агента.

              ┌─────────────┐
              │    Goal     │
              └──────┬──────┘
                     ↓
              ┌─────────────┐
              │   Reason    │
              └──────┬──────┘
                     ↓
              ┌─────────────┐
              │ Choose Tool │
              └──────┬──────┘
                     ↓
              ┌─────────────┐
              │   Execute   │
              └──────┬──────┘
                     ↓
              ┌─────────────┐
              │   Observe   │
              └──────┬──────┘
                     ↓
                Goal done?
                 /      \
               No        Yes
               ↓          ↓
             Reason      Finish

Его основной паттерн сводится к следующему:

Размышление → Действие → Наблюдение → Повтор

В качестве примера:

User:
"Investigate this invoice."
Agent:
"I need invoice details."        ↓get_invoice()        ↓Tool returns invoice information.        ↓Agent:
"The amount looks unusual. I need the contract."        ↓get_contract()        ↓Contract returned.        ↓Agent:
"Now I can compare the two."

В ходе всего этого взаимодействия агент постоянно корректирует своё представление о ситуации по мере поступления новой информации из окружающей среды.

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

Инструменты: возможность действий для агентов

Этот цикл сразу же вызывает следующий вопрос:

Как агент на самом деле может взаимодействовать с реальным миром?

Сам по себе ЯЗЫК БОЛЬШИХ МОДЕЛЕЙ не имеет прямого доступа к системам вашей компании.

Именно инструменты обеспечивают ему такой доступ.

Например:

get_customer()
get_invoice()
search_policy()
query_database()
create_ticket()
send_email()

При наличии инструментов поток действий выглядит следующим образом:

Agent
 ↓
"I need the invoice"
 ↓
get_invoice()
 ↓
Invoice data
 ↓
Agent
 ↓
"I need the contract"
 ↓
get_contract()
 ↓
Contract data

Инструменты позволяют агентам подключаться к широкому спектру внешних систем, таких как:

  • Веб-API
  • Реляционные или NoSQL базы данных
  • Поисковые системы
  • Локальное или облачное хранилище файлов
  • Хостинги исходного кода, такие как GitHub
  • Платформы управления отношениями с клиентами
  • Поставщики облачных инфраструктур
  • Системы поддержки и обработки заявок
  • Среды симуляции для запуска кода
  • Наличие такой возможности коренным образом меняет функции больших языковых моделей. Они больше не просто генерируют текст.

    Вместо этого они действуют как системы принятия решений, использующие определенный набор функций.

    Но что должен помнить агент?

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

    Представьте агента, который уже прошел через эту последовательность действий:

    Retrieved the invoice
    Checked the contract
    Queried usage
    Found an anomaly
    

    Ему необходимо отслеживать эти результаты, чтобы определить следующий шаг.

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

    Именно здесь на сцену выходят состояние и память.

    Память: обеспечение преемственности у агента

    Любой агент, работающий в ходе нескольких взаимодействий, нуждается в какой-то системе памяти.

    Полезно разделить память на две категории:

    Краткосрочная память

    Она включает всю информацию, необходимую для выполнения текущей задачи.

    User request + Conversation + Current plan + Tool results
    

    Например, при расследовании проблемы с счетом агент может сохранять такие детали, как:

    Invoice = $14,000
    Contract = $10,000
    Usage = Normal
    

    Эти данные актуальны только для текущей сессии.

    Долгосрочная память

    Она содержит информацию, которая может пригодиться в последующих взаимодействиях.

    Например:

    User prefers concise reports.
    Customer uses Enterprise contract.
    Previous incident was resolved using procedure X.
    

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

    Базовая версия этой архитектуры выглядит следующим образом:

                    Agent
                      ↓
               Memory Manager
              /       |       \
             ↓        ↓        ↓
         Working   Episodic  Semantic
          Memory    Memory    Memory
    

    Тем не менее, память не должна означать хранение всего бесконечно.

    В производственной среде обычно требуется:

    Store
     ↓
    Index
     ↓
    Retrieve
     ↓
    Rank
     ↓
    Inject relevant memory
    

    Цель не в том, чтобы максимизировать объем сохраняемой информации.

    Цель — поддерживать актуальность памяти.

    Планирование: определение следующих действий

    На этом этапе агент может вызывать инструменты и воспроизводить прошлый контекст. Однако задачи с большим количеством взаимосвязанных элементов по-прежнему представляют сложность.

    Именно здесь пригодяется еще один навык:

    Планирование.

    Возьмем этот запрос в качестве примера:

    «Анализируйте причины увеличения счетов и подготовьте отчет.»

    Агент может разделить его на:

    1. Retrieve current billing
    2. Retrieve historical billing
    3. Compare services
    4. Identify anomalies
    5. Investigate causes
    6. Verify against policy
    7. Generate report
    

    Планирование может иметь четко определенную форму:

    {
      "steps": [
        "fetch_billing",
        "compare_history",
        "investigate_anomaly",
        "generate_report"
      ]
    }
    

    Или это может быть косвенным способом, при котором модель выбирает свой следующий шаг сразу после просмотра результата работы каждого инструмента.

    Например:

    Get billing
         ↓
    Observe increase
         ↓
    Investigate service
         ↓
    Observe anomaly
         ↓
    Check logs
         ↓
    Generate conclusion
    

    Это важно, потому что планирование не обязательно должно находиться в отдельном агенте планирования.

    Один агент часто способен как планировать, так и сам выполнять работу.

    От одного агента к разным архитектурам

    На этом этапе основные строительные блоки уже готовы:

    LLM
    +
    Tools
    +
    State
    +
    Memory
    +
    Planning
    

    Но что происходит, когда задача становится слишком сложной для одного агента?

    Один агент не всегда является подходящим решением.

    Именно поэтому используются различные архитектурные паттерны для создания систем с агентами.

    A. Один агент

                    Agent
                   /   |   \
                  ↓    ↓    ↓
                 DB   API  Search
    

    Один агент одновременно управляет несколькими инструментами.

    Возьмём сценарий обслуживания клиентов: один агент может одновременно иметь доступ к записям клиентов, данным о финансовых операциях, документам политики и системе обработки заявок.

    Обычно имеет смысл начинать с этого, поскольку это делает общую структуру простой и понятной для анализа.

    B. Последовательный рабочий процесс

    Research
       ↓
    Analysis
       ↓
    Generation
       ↓
    Validation
    

    Этот паттерн подходит для ситуаций, когда последовательность шагов известна заранее.

    Например, конвейер обработки документов всегда проходит через одни и те же этапы:

    Extract
     ↓
    Analyze
     ↓
    Generate
     ↓
    Validate
    

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

    C. Оркестратор-рабочие элементы

                         Orchestrator
                   /           |          \
                  ↓            ↓           ↓
             Market Research   Risk       Investment
               tool            tool          tool
    

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

    Рассмотрим пример запроса:

    «Инвестировать мои 1000 рупий на фондовом рынке»

    Оркестратор может запустить:

    Financial Research Worker
    Market Research Worker
    Risk Analysis Worker
    

    То, какие рабочие процессы будут созданы, полностью зависит от требований запроса.

    D. Оценщик-оптимизатор

    Иногда наиболее эффективным способом повышения качества результата работы агента является передача его на отдельный этап оценки.

    Generator
        ↓
    Output
        ↓
    Evaluator
        ↓
    Pass ─────→ Done
        │
        ↓
    Feedback
        ↓
    Generator
    

    Например:

    Generate SQL
     ↓
    Execute SQL
     ↓
    Error
     ↓
    Analyze error
     ↓
    Correct SQL
     ↓
    Execute again
    

    В такой конфигурации обратная связь поступает непосредственно из среды, в которой работает агент.

    Этот подход особенно эффективен в областях, где возможна объективная проверка корректности — таких как сгенерированный код, SQL-запросы, структурированные данные или автоматизированные тесты.

    E. Многократный агент

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

                          Supervisor
                   /           |          \
                  ↓            ↓           ↓
             Market Research   Risk       Investment
               Agent          Agent       Agent
    

    Каждый агент может отличаться по следующим параметрам:

    • Инструкциям
    • Инструментам
    • Знаниям
    • Обязанностям
    • Критериям оценки

    Тем не менее, добавление большего количества агентов автоматически не приводит к улучшению.

    Увеличение числа агентов также сопряжено с следующими проблемами:

    • Повышенная задержка
    • Высокие затраты
    • Увеличенное количество взаимодействий между агентами
    • Усиленная необходимость управления состоянием
    • Больше мест, где могут возникнуть сбои
    • Усложнение отладки

    Полезное руководство:

    Начните с одного агента и разделяйте его на несколько только тогда, когда специализация действительно оправдает себя.

    Подключение агентов к внешнему миру: MCP

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

    Представьте корпоративного агента, которому необходимо получить доступ к:

    GitHub
    Slack
    Jira
    PostgreSQL
    Snowflake
    Google Drive
    AWS
    Azure
    Datadog
    

    Если каждому ИИ-приложению придется самостоятельно разрабатывать интеграцию с каждой из этих систем, весь экосистема превратится в источник постоянного технического обслуживания.

    Именно этот пробел и заполняет Model Context Protocol (MCP).

    Что такое MCP?

    Model Context Protocol (MCP) — это открытый протокол, предназначенный для стандартизации способов взаимодействия ИИ-приложений с внешними инструментами, ресурсами и запросами.

    Проще говоря:

    MCP выступает в качестве стандартного интерфейса между ИИ-приложениями и внешними возможностями.

    Без общего стандарта возникают следующие проблемы:

    Agent
     ├── Custom GitHub integration
     ├── Custom Slack integration
     ├── Custom Database integration
     └── Custom Jira integration
    

    При использовании MCP ситуация выглядит иначе:

    AI Application
                           ↓
                      MCP Client
                           ↓
                 ┌─────────┼─────────┐
                 ↓         ↓         ↓
              GitHub      Jira       DB
             MCP Server MCP Server MCP Server
    

    MCP предусматривает архитектуру «хост-клиент-сервер» вместе со стандартизированными элементами — а именно инструментами, ресурсами и запросами.

    Инструменты MCP

    Это действия, которые модель может выполнять:

    create_issue()
    search_repository()
    execute_query()
    

    Ресурсы MCP

    Это данные контекста, которые можно передать модели:

    database schema
    repository files
    documents
    configuration
    

    Запросы MCP

    Это повторно используемые шаблоны для типовых взаимодействий:

    review_code()
    generate_report()
    debug_error()
    

    Вот ключевой момент, который следует запомнить:

    MCP не создаёт агента.

    Он предоставляет общий способ для агента или любого ИИ-приложения подключаться к внешним возможностям. MCP является слоем связи; сам агент остаётся слоем принятия решений.

    Теперь агент может действовать — но может ли он совершенствоваться?

    На этом этапе агент способен:

    Understand
     ↓
    Plan
     ↓
    Use tools
     ↓
    Retrieve knowledge
     ↓
    Remember information
     ↓
    Take actions
    

    Однако производственная система ставит ещё один вопрос:

    Что происходит, когда агент допускает ошибку?

    Допустим, он постоянно выбирает неподходящий инструмент для выполнения задачи.

    User:
    Investigate invoice.
    
    Agent:
    Calls get_customer_profile()User:
    Wrong tool. You should check invoice_details().
    

    Стоит ли сразу же исправлять запрос?

    Вероятно, нет.

    Отзывы, которые даёт пользователь, сами могут быть неверными, вредоносными, неполными или актуальными только в одном конкретном случае. Именно поэтому существуют циклы обучения.

    Циклы обучения

    Распространённое заблуждение выглядит так:

    "Если я дам агенту отзыв, подложная модель LLM автоматически научится."

    На практике это обычно не происходит.

    Обучение происходит на разных уровнях.

    Уровень 1 — Отзывы в контексте

    Agent:
    I'll create a P2 ticket.
    
    User:
    No, this should be P1.Agent:
    Understood. P1.
    

    Здесь агент корректирует своё поведение только в рамках текущего диалога.

    Веса основной модели остаются нетронутыми.

    Уровень 2 — Память

    Эту настройку также можно сохранить:

    User preference:
    Incident priority should default to P1 for this category.
    

    В последующих сессиях её можно восстановить. Модель при этом не меняется — у агента просто появляется больше контекста для работы.

    Уровень 3 — Улучшение системы

    Теперь подумайте о паттерне повторяющихся ошибок.

    Production
        ↓
    Trace
        ↓
    Evaluation
        ↓
    Failure detected
        ↓
    Improve prompt/tool/model
        ↓
    Deploy new version
    

    Исправление на этом уровне может затронуть несколько частей процесса одновременно:

    • Формулировку запросов
    • Описание инструментов
    • Логику маршрутизации для выбора пути
    • Шаг извлечения информации
    • Примеры, показываемые агенту
    • Тонкую настройку модели
    • Замену модели на другую

    Такой набор изменений гораздо точнее отражает то, что люди имеют в виду под циклом обучения агента.

    Вывод следующий:

    Отзывы должны, как правило, способствовать оценке и улучшению системы, а не прямо влиять на её постоянное поведение.

    Ограничения и безопасность

    Как только агент начинает принимать действия, возникает новая проблема:

    Что помешает ему совершить что-то вредное?

    Агент может быть подключен к базам данных, производственной инфраструктуре, финансовым системам или данным клиентов.

    Это означает, что архитектура должна устанавливать ограничения на действия агента.

    User
     ↓
    Input Guardrail
     ↓
    Agent
     ↓
    Authorization
     ↓
    Tool
     ↓
    External System
     ↓
    Output Validation
    

    Ограничения полезны для выявления таких проблем, как:

    • Вставка команд
    • Небезопасные запросы
    • Конфиденциальная информация
    • Неверные аргументы инструментов
    • Нарушения правил

    Тем не менее, одних лишь ограничений недостаточно.

    Представьте, что агент пытается выполнить:

    DELETE production_database
    

    Вы не хотите, чтобы система полагалась на модель для принятия решений:

    "Это звучит опасно."

    Вместо этого логика авторизации должна детерминированно блокировать такие действия каждый раз.

    ГЛМ никогда не должен быть окончательным барьером безопасности.

    Настоящая аутентификация, авторизация, контроль доступа, проверка входных данных и стандартные практики безопасности приложений должны действовать вокруг агента.

    Внедрение промптов в агентные системы

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

    Рассмотрим следующую ситуацию:

    Agent
     ↓
    Search document
     ↓
    Document contains malicious instruction
     ↓
    Agent interprets it as an instruction
     ↓
    Tool call
     ↓
    Potentially harmful action
    

    Ключевое отличие, которое необходимо помнить, заключается в следующем:

    Instructions
          ≠
    Retrieved Data
    

    Веб-страница, электронное письмо, заявка на поддержку, задача в GitHub или любой другой документ могут содержать текст, сформатированный так, чтобы выглядеть как инструкция. Агент не должен считать всё, что он получает, автоматически надежным или авторитетным. Именно поэтому системы с агентами требуют более строгой безопасности, чем простые инструменты для ответов на вопросы.

    Оценка: не ограничивайтесь только окончательным ответом

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

    Действительно ли агент хорошо выполняет свою работу?

    Для обычного программного обеспечения типичным вопросом является:

    "Был ли результат правильным?"

    В случае с агентами необходимо также задавать вопрос:

    "Следовал ли агент правильному пути для достижения результата?"

    Например:

    Request
     ↓
    Wrong Tool
     ↓
    Wrong Tool
     ↓
    Correct Tool
     ↓
    Correct Answer
    

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

    Поэтому следует оценивать всю траекторию действий, а не только конечный результат:

    Input
     ↓
    Plan
     ↓
    Tool Selection
     ↓
    Arguments
     ↓
    Tool Result
     ↓
    Next Decision
     ↓
    Final Answer
    

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

    Траектория показывает вам как агент пришел к результату, что имеет столь же большое значение, как и сам результат.

    Наблюдаемость

    Оценка позволяет узнать, работают ли системы корректно. Наблюдаемость помогает понять почему что-то сломалось.

    Полезный отчет о действиях может выглядеть примерно так:

    Trace: 12345
    
    User Request
         ↓
    LLM Call #1
         ↓
    search_customer()
         ↓
    Result
         ↓
    LLM Call #2
         ↓
    get_invoice()
         ↓
    Result
         ↓
    LLM Call #3
         ↓
    Final Answer
    

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

    Без такого уровня детализации диагностика поведения агента становится практически невозможной.

    Например, когда агент возвращает неверный ответ, хороший трейс должен позволить определить, была ли причина в:

    Wrong retrieval?
          ↓
    Wrong tool?
          ↓
    Wrong tool arguments?
          ↓
    Incorrect reasoning?
          ↓
    Bad final generation?
    

    Это делает возможность наблюдения ключевой частью проектирования системы, а не дополнением, добавленным позже для мониторинга.

    Собирание всего воедино: архитектура в производстве

    Шаг за шагом мы добавляли новые функции поверх исходной LLM:

    LLM
     ↓
    RAG
     ↓
    Tools
     ↓
    Agent Loop
     ↓
    Memory
     ↓
    Planning
     ↓
    MCP
     ↓
    Learning & Evaluation
     ↓
    Security & Guardrails
    

    Настоящая производственная система объединяет все эти компоненты во единое целое:

                             USER
                               │
                               ↓
                        API / Application
                               │
                               ↓
                        Authentication
                               │
                               ↓
                        ┌─────────────┐
                        │ Agent       │
                        │ Runtime     │
                        └──────┬──────┘
                               │
                  ┌────────────┼────────────┐
                  ↓            ↓            ↓
               Context       Memory        Tools
               Manager         │            │
                  │            ↓            ↓
                  ↓         Vector DB    MCP / APIs
                 RAG                         │
                  │              ┌──────────┼──────────┐
                  ↓              ↓          ↓          ↓
              Knowledge       GitHub       DB         SaaS
                               │
                               ↓
                          Tool Results
                               │
                               ↓
                             Agent
                               │
                        ┌──────┴──────┐
                        ↓             ↓
                    Response       Action
                                      │
                                      ↓
                                  External
                                   System
    

    И в итоге всё это оборачивается в единую структуру:

    Security
    Guardrails
    Observability
    Evaluation
    Human Approval
    Cost Monitoring
    

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

    Более широкая картина

    Оглядываясь назад, путь начинался с обычной большой языковой модели:

    User → Prompt → LLM → Response
    

    Затем начали проявляться проблемы.

    У модели не было доступа к внешним знаниям.

    Поэтому на сцену вышел подход RAG.

    Ему требовался способ взаимодействия с внешними системами.

    Поэтому мы предоставили ему инструменты.

    Ему нужно было выбирать, какое действие целесообразно на каждом этапе.

    Поэтому был введен цикл агента.

    Ему требовалось сохранять предыдущий контекст.

    Поэтому мы добавили слой памяти.

    Более сложные задачи требовали разбиения работы на меньшие шаги.

    Поэтому затем появилось планирование.

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

    Мы представили различные архитектуры агентов, а там, где это было целесообразно, — полные многопроцессорные системы агентов.

    По мере увеличения количества интеграций возникла новая проблема.

    Именно здесь на помощь приходят стандартизированные протоколы, такие как MCP, которые обеспечивают единый слой подключения.

    Как только система начала принимать значимые решения самостоятельно, ей потребовались:

    Безопасность → Оценка → Наблюдаемость → Обратная связь → Постоянное совершенствование

    На этом этапе у нас уже не просто LLM, заключенный в запрос.

    Это стал полноценная агентская система.

    Ментальная модель агентского ИИ

    По сути, модель можно свести к следующему:

                        GOAL
                          ↓
                       REASON
                          ↓
                       PLAN
                          ↓
                        ACT
                          ↓
                      OBSERVE
                          ↓
                     EVALUATE
                          ↓
                      REMEMBER
                          │
                          └────────→ REASON
    

    Вокруг этого цикла находится:

    Security
    +
    Guardrails
    +
    Authorization
    +
    Observability
    +
    Human Oversight
    

    Который отражает следующую эволюцию:

    LLM
     ↓
    LLM + RAG
     ↓
    LLM + Tools
     ↓
    Agent
     ↓
    Agent + Memory
     ↓
    Agent + MCP
     ↓
    Multi-Agent / Agentic Systems
     ↓
    Continuous Evaluation & Improvement
    

    Но цель не в том, чтобы довести автономию до максимума.

    Целью должна быть надежная автономия.

    Заключение

    Искусственный интеллект-агент часто сводится к простой формуле:

    LLM + Инструменты

    Однако это лишь отправная точка.

    Агент производственного уровня объединяет в себе:

    • Размышление, обеспечиваемое с помощью LLM
    • Знания, поступающие через RAG
    • Непрерывность, поддерживаемая с помощью памяти
    • Действия, выполняемые с использованием инструментов
    • Связность, обеспечиваемая протоколами вроде MCP
    • Планирование, для решения многоэтапных задач
    • Обратная связь, способствующая улучшению
  • Ограничения — для обеспечения безопасности
  • Оценка — для гарантии надежности
  • Наблюдаемость — для упрощения отладки
  • Человеческий надзор — там, где полная автономия нецелесообразна
  • Основное архитектурное правило можно сформулировать просто:

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

    Самые сильные агентные системы определяются не количеством встроенных возможностей.

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

    Вот что на самом деле представляет собой агентный ИИ:

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

    Связанные статьи

  • Сравнение агентов Frontier AI: Astra, Flash, Fable и Mythos — анализ того, как новейшие версии моделей GPT, Gemini и Claude справляются с реальными задачами, требующими использования агентов, такими как программирование, просмотр информации и работа с инструментами, а не только на эталонных тестах.
  • Почему риск зависимости заключается в доступе к ИИ, а не в его возможностях — в этой статье рассматриваются недавние инциденты с контролем за экспортом, связанные с моделями Claude и GPT-5.6, чтобы показать, что доступ к ИИ-моделям является нестабильным фактором, независимым от их базовых возможностей.
  • RAG Explained: Как системы ИИ получают свежие знания по запросу — Узнайте, как работает технология Retrieval-Augmented Generation, от разбиения данных на части и создания векторных представлений до поиска в векторном пространстве, что позволяет моделям ИИ отвечать на вопросы без повторной обучения.
  • Девять архитектурных принципов для производственных систем ИИ с агентными функциями — Ознакомьтесь с планом архитектуры, основанным на девяти принципах — от сетей с концепцией нулевого доверия и уровней хранения данных до механизмов связывания доказательств — для создания проверяемых систем ИИ корпоративного уровня с агентными функциями.
  • Проектирование устойчивых графов ИИ-агентов: повторные попытки, альтернативные решения и GraphRAG — Узнайте, как создавать работающие в условиях сбоев рабочие процессы ИИ-агентов с использованием явных веток обработки ошибок, логики повторных попыток, LangGraph, а также когда GraphRAG превосходит обычный RAG или циклы агентов.
  • Что означают предупреждения об безопасности ИИ от бывших исследователей Anthropic для разработчиков — В этой статье объясняется, почему предупреждения исследователей о рисках ИИ важны для обычных разработчиков, и как автономия агентов и пробелы в согласованности должны влиять на формирование практических навыков безопасности.
  • Понимание памяти ИИ: объяснение контекста, эмбеддингов, технологии RAG и параметров модели — В этой статье подробно рассматривается, как системы ИИ фактически запоминают информацию, в том числе контекстные окна, эмбеддинги, векторные базы данных, технология RAG и параметры модели.
  • Понимание ИИ-агентов: цели, инструменты, память и цикл действий агента — Простое для новичков объяснение того, чем ИИ-агенты отличаются от чат-ботов, с описанием основных компонентов, цикла принятия решений, уровней автономии и практических применений.