Лекция 4. Основные компоненты агентных систем
4.1 Обзор компонентов
Современный агент состоит из шести ключевых компонентов:
┌──────────────────────────────────────────┐
│ Agent │
│ │
│ ┌──────┐ ┌────────┐ ┌──────────────┐ │
│ │ LLM │ │Memory │ │ Tool Layer │ │
│ └──────┘ └────────┘ └──────────────┘ │
│ │
│ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│ │ Planner │ │Executor │ │Eval'or │ │
│ └──────────┘ └──────────┘ └────────┘ │
└──────────────────────────────────────────┘
4.2 Компонент 1: LLM (Language Model)
Что такое LLM
Large Language Model - большая языковая модель, центральный reasoning-компонент агента. Принимает текст на вход, генерирует текст на выходе. В агентном контексте:
- Reasoning - рассуждает о задаче, строит план.
- Tool Calling - решает, какой инструмент вызвать и с какими аргументами.
- Planning - декомпозирует задачу на шаги.
- Summarization - сжимает длинные тексты.
- Evaluation - оценивает качество результата.
Ключевые параметры LLM
Context Window (контекстное окно) - максимальное количество токенов, которые модель может обработать за один вызов. Влияет на то, сколько истории диалога и документов можно передать.
Temperature - параметр случайности генерации (0 - детерминированный, 1+ - творческий). Для агентных задач обычно 0–0.3.
Token - единица текста, примерно равная 3/4 слова в английском. Токены - это «валюта» LLM: стоимость запроса измеряется в токенах.
Inference - процесс генерации ответа моделью.
Latency - время от запроса до первого токена ответа. Критично для интерактивных агентов.
Throughput - количество токенов в секунду. Важно для batch-задач.
Популярные LLM
| Модель |
Компания |
Особенности |
| GPT-4o / o3 |
OpenAI |
Сильный reasoning, отличный tool calling |
| Claude 3.5/4 |
Anthropic |
Длинный контекст, анализ документов |
| Gemini 2.0 |
Google |
Мультимодальность, интеграция с Google |
| DeepSeek V3/R1 |
DeepSeek |
Код, reasoning, open weight |
| Qwen 2.5 |
Alibaba |
Мощная open weight модель |
| Llama 4 |
Meta |
Open weight, локальный запуск |
| Mistral |
Mistral AI |
Быстрая, компактная, open weight |
Closed vs Open Weight
Closed Models (закрытые) - GPT, Claude, Gemini. Доступны только через API. Высокое качество, но зависимость от провайдера и стоимость.
Open Weight Models (открытые веса) - Llama, Qwen, DeepSeek, Mistral. Веса модели опубликованы, можно развернуть локально. Бесплатно, без цензуры, полный контроль.
4.3 Компонент 2: Memory (Память)
Память - один из ключевых компонентов, отличающих агента от простого LLM-чатбота.
Short-Term Memory (краткосрочная память)
Контекст текущей сессии. Хранится в conversation_history - списке сообщений.
conversation_history = [
{"role": "system", "content": "Ты помощник..."},
{"role": "user", "content": "Привет!"},
{"role": "assistant", "content": "Здравствуйте!"},
{"role": "user", "content": "Что такое RAG?"},
]
Ограничения: исчезает при завершении сессии, ограничена контекстным окном.
Long-Term Memory (долгосрочная память)
Хранится вне модели, сохраняется между сессиями.
Типы долгосрочной памяти:
Episodic Memory (эпизодическая) - конкретные события и факты из прошлых взаимодействий. «Пользователь предпочитает Python», «задача X была решена 3 марта».
Semantic Memory (семантическая) - общие знания и факты. Хранится в векторной БД, доступна через RAG.
Procedural Memory (процедурная) - как выполнять задачи. Хранится в виде «skills» или инструкций.
Working Memory (рабочая) - промежуточные результаты текущей задачи. Хранится в State Store.
Технологии для памяти
| Тип |
Технология |
Использование |
| Short-term |
In-memory list |
Текущий диалог |
| Episodic |
PostgreSQL, SQLite |
Факты о пользователе |
| Semantic |
Qdrant, Weaviate, Chroma |
RAG по документам |
| Working |
Redis |
Состояние задачи |
| Procedural |
Файлы, DB |
Системные промпты, skills |
Memory Compression (компрессия памяти)
При длинных сессиях память растёт. Стратегии управления:
- Summarization - LLM суммирует старые части диалога.
- Importance Scoring - ранжирование воспоминаний по важности.
- Forgetting - удаление неважных воспоминаний.
- Consolidation - объединение похожих воспоминаний.
4.4 Компонент 3: Tool Layer (слой инструментов)
Что такое Tool (инструмент)
Tool - это функция, которую агент может вызвать для взаимодействия с внешним миром. Каждый инструмент описывается схемой:
{
"name": "search_web",
"description": "Выполнить поиск в интернете",
"parameters": {
"query": {"type": "string", "description": "Поисковый запрос"},
"num_results": {"type": "integer", "default": 5}
}
}
Типы инструментов
Read Tools - получают информацию без изменений:
- search_web - поиск в интернете
- read_file - чтение файла
- query_database - запрос к БД
- get_weather - получение погоды
Write Tools - изменяют состояние:
- write_file - запись файла
- send_email - отправка письма
- create_github_pr - создание PR
- execute_code - запуск кода
Agent Tools - вызов других агентов:
- call_subagent - делегирование подзадачи
- spawn_worker - создание нового агента
Tool Registry (реестр инструментов)
Harness хранит все доступные инструменты в реестре. При сборке контекста схемы инструментов передаются в LLM.
Функции реестра:
1. Регистрация инструментов с их схемами.
2. Валидация аргументов перед вызовом.
3. Авторизация (не все агенты имеют доступ ко всем инструментам).
4. Rate limiting для внешних API.
5. Логирование вызовов.
MCP - Model Context Protocol
MCP (Model Context Protocol) - открытый стандарт для подключения инструментов к LLM, разработанный Anthropic. Аналог USB для AI-систем.
Проблема, которую решает MCP:
Каждый фреймворк реализовывал подключение инструментов по-своему. MCP стандартизирует этот интерфейс.
Компоненты MCP:
- MCP Server - сервис, предоставляющий инструменты.
- MCP Client - агент/harness, который вызывает инструменты.
- Transport - протокол передачи (stdio, HTTP, SSE).
Популярные MCP-серверы:
- filesystem - работа с файлами
- github - интеграция с GitHub
- postgres - работа с PostgreSQL
- brave-search - поиск через Brave
- slack - Slack API
- google-drive - Google Drive
4.5 Компонент 4: Planner (планировщик)
Что такое Planner
Planner - компонент, отвечающий за декомпозицию высокоуровневой цели на конкретные шаги.
Пример:
Цель: «Подготовить аналитический отчёт по рынку ИИ-агентов»
План:
1. Поиск актуальных данных о рынке (search_web)
2. Анализ ключевых игроков (search_web + анализ LLM)
3. Сравнение фреймворков (search_web + структурирование)
4. Построение выводов (анализ LLM)
5. Генерация отчёта (write_file)
Типы планирования
Static Planning - план создаётся один раз в начале и выполняется без изменений. Предсказуемо, но негибко.
Dynamic Planning - план обновляется после каждого шага на основе наблюдений. Гибко, но может «потерять» исходную цель.
Hierarchical Planning - многоуровневый план: high-level цели декомпозируются в mid-level шаги, которые декомпозируются в конкретные actions.
MCTS (Monte Carlo Tree Search) - исследование пространства возможных планов с выбором наиболее перспективного.
Плановые форматы
ReAct - чередование Thought/Action/Observation.
Plan-and-Execute - сначала полный план, потом исполнение с возможностью пересмотра.
Reflexion - после неудачи агент анализирует ошибку и создаёт улучшенный план.
4.6 Компонент 5: Executor (исполнитель)
Что такое Executor
Executor - компонент, физически исполняющий шаги плана: вызывающий инструменты, управляющий ошибками, передающий результаты.
Plan Step
↓
Executor
↓
Validate Arguments
↓
Call Tool / API / Function
↓
Handle Result / Error
↓
Format for LLM Context
Обработка ошибок в Executor
Retry Logic - повтор при временных ошибках (network timeout, rate limit).
Error Formatting - преобразование технических ошибок в понятный LLM текст.
Fallback - использование альтернативного инструмента при недоступности основного.
Circuit Breaker - отключение инструмента после N ошибок подряд.
4.7 Компонент 6: Evaluator (оценщик)
Что такое Evaluator
Evaluator - компонент, проверяющий качество результата: достигнута ли цель, соответствует ли ответ требованиям.
Подходы к оценке
Self-Critique - модель сама критикует свой ответ. Задаётся вопрос: «Что не так с этим ответом?»
Reflection - агент анализирует своё поведение: «Что я сделал правильно/неправильно?»
Constitutional AI Evaluation - проверка ответа на соответствие набору принципов (конституции).
LLM-as-Judge - отдельная LLM оценивает ответ основной LLM. Часто более точно, чем self-critique.
Rule-based Evaluation - детерминированные проверки: формат ответа, наличие обязательных полей, длина.
Human-in-the-Loop - человек включается в процесс оценки для критичных решений.
Метрики оценки
| Метрика |
Что измеряет |
| Correctness |
Фактическая точность |
| Completeness |
Полнота ответа |
| Relevance |
Релевантность задаче |
| Safety |
Отсутствие вредоносного контента |
| Groundedness |
Соответствие источникам |
| Coherence |
Логическая связность |
4.8 Взаимодействие компонентов
User Goal
↓
Planner → создаёт план
↓
Executor → исполняет шаг 1
↓
LLM → решает, что делать
↓
Tool Layer → вызывает инструмент
↓
Memory → сохраняет результат
↓
Evaluator → достигнута ли цель?
├── Нет → возврат к Planner
└── Да → финальный ответ
Все компоненты управляются через Harness, который обеспечивает их корректное взаимодействие.
4.9 Итог лекции
Шесть компонентов агента - LLM, Memory, Tool Layer, Planner, Executor, Evaluator - работают как единый организм. LLM обеспечивает интеллект, Memory - знания и состояние, Tools - действия, Planner - стратегию, Executor - реализацию, Evaluator - качество. Agent Harness связывает их в управляемую, наблюдаемую и надёжную систему.