English translation is not available yet. Showing Russian content.
Назовите 12+ слоёв эталонной архитектуры Harness?
Краткий тезис
Эталонная архитектура Harness (проект harness-one) — это многослойный шаблон для построения production‑ready AI-агентов, объединяющих RAG, мульти‑агентную оркестрацию и гибкий цикл вызова LLM. Она насчитывает 12+ слоёв, каждый из которых решает отдельную задачу: от управления агентом и инженерии промптов до безопасности, наблюдаемости и эволюции системы. Понимание этих слоёв позволяет проектировать модульные, масштабируемые и устойчивые агентные системы, готовые к изменению требований и данных.
1. Agent Loop (Цикл агента)
Agent Loop — это ядро архитектуры. Он реализует реактивный цикл: агент получает запрос → вызывает LLM → LLM решает, какие инструменты (tools) запустить → dispatcher запускает инструменты → результаты возвращаются LLM для финального ответа или следующей итерации. Цикл может быть:
- синхронным (один запрос — один ответ)
- итеративным (reasoning|многошаговое рассуждение, ReAct)
- рекурсивным (агент вызывает сам себя)
Слой отвечает за управление состоянием цикла, обработку ошибок, таймауты и лимит итераций.
2. Prompt Engineering (Инженерия промптов)
Слой управляет многослойными промптами: системный промпт, динамический промпт (с контекстом), инструкции для инструментов.
Ключевые элементы:
- KV‑cache — кеширование ключей/значений для ускорения инференса больших моделей.
- Skills — переиспользуемые шаблоны промптов (например, "суммаризация", "извлечение сущностей").
- Сборка промпта — объединение системного сообщения, истории диалога, результатов инструментов и контекста RAG.
3. Context Engineering (Инженерия контекста)
Слой отвечает за эффективное использование контекстного окна LLM.
- Token budgets — выделение лимита токенов на каждую часть запроса (инструкция, история, документы, инструменты).
- Packing — упаковка нескольких коротких запросов в один для повышения throughput.
- Compression — сжатие длинного контекста (например, через суммаризацию или удаление избыточных фрагментов).
Этот слой критичен, когда в контекст попадает много извлечённых чанков RAG.
4. Tool System (Система инструментов)
Здесь определяются, валидируются и выполняются инструменты — функции, которые агент может вызывать (поиск, калькулятор, базы данных, внешние API).
- Defintion — описание инструмента (имя, параметры, возвращаемый тип).
- Validation — проверка типов и ограничений на входные данные.
- Registry — реестр всех доступных инструментов, часто с метаданными (версия, автор).
- Rate limiting — ограничение частоты вызовов для защиты внешних сервисов и управления затратами.
5. Safety & Guardrails (Безопасность и ограждения)
Слой фильтрует и модерирует входные запросы (input guardrails) и выходные ответы (output guardrails).
- Проверка на вредоносный контент (мат, личные данные, инъекции).
- Проверка на соблюдение политик (например, отказ в ответах на медицинские темы).
- Использование классификаторов, регулярных выражений, а также отдельных LLM для сложных проверок.
6. Observability (Наблюдаемость)
Слой собирает трассировки (tracing) каждого вызова LLM и инструмента, логи (logging) шагов агента и метрики (cost per request, latency, токены).
- Distributed tracing — отслеживание запроса через все слои.
- Cost tracking — привязка к моделям и инструментам.
- Алерты — оповещения при росте ошибок или превышении бюджета.
7. Session Management (Управление сессиями)
Управляет сессиями пользователей: TTL (время жизни), LRU (вытеснение старых сессий при нехватке памяти), GC (сборка мусора для удаления мёртвых сессий) и locking (блокировка для предотвращения гонок при параллельных запросах).
Обеспечивает сохранение истории диалога между шагами.
8. Memory & Persistence (Память и сохранение)
Слой отвечает за хранение данных, выходящих за рамки одной сессии.
- In-memory — кеш последних диалогов.
- File system — долговременное хранение логов, конфигураций.
- Vector stores — долговременная память в виде эмбеддингов (например, для сохранения извлечённых фактов).
Используется для long‑term memory агента (профиль пользователя, история предпочтений).
9. Evaluation (Оценка)
Слой автоматически оценивает качество работы агента по скорингам (scorers): faithfulness, answer relevance, tool‑usage correctness.
- Quality gates — пороговые значения метрик, при которых агент перезапускается или отправляется на доработку.
- Flywheel — маховик улучшения: результаты оценки отправляются обратно в цикл для дообучения или смены промптов.
10. Evolution (Эволюция)
Слой позволяет системе адаптироваться к изменениям:
- Drift detection — обнаружение изменения распределения запросов или поведения LLM (например, падение точности).
- Component registry — реестр версий всех компонентов (промпты, инструменты, модели), позволяющий A/B тестирование и быстрый откат.
- Автоматическая замена — замена модели или инструмента при обнаружении дрейфа.
11. Multi‑Agent Orchestration (Оркестрация мульти‑агентов)
Когда система состоит из нескольких агентов, этот слой управляет:
- AgentPool — пул агентов для балансировки нагрузки.
- Handoff — передача запроса от одного агента другому (например, от агента‑классификатора к профильному агенту).
- Координация — синхронизация состояния между агентами (через общую память или шину сообщений).
12. RAG Pipeline (Конвейер RAG)
Слой отвечает за извлечение релевантных документов из базы знаний:
- Loaders — загрузчики данных (PDF, веб, базы данных).
- Chunking — разбиение документов на чанки.
- Embedding — получение векторных представлений.
- Retrieval — поиск (kNN, гибридный, многоходовой).
Взаимодействует с Context Engineering для упаковки найденных документов в промпт.
13. Дополнительные слои (Infrastructure & Deployment)
Хотя в классическом списке Harness их часто выделяют отдельно, можно добавить:
- Infrastructure Layer — контейнеризация (Docker), оркестрация (Kubernetes), автоскейлинг.
- Data Pipeline — потоковая загрузка новых документов, обновление эмбеддингов.
- CI/CD — непрерывная интеграция новых моделей и конфигураций.
Они обеспечивают надёжность и автоматизацию эксплуатации.
Пет-проект для закрепления
Задача: реализовать минимальную версию архитектуры Harness — агента, который использует RAG и инструменты (калькулятор, поиск в Wikipedia) с базовыми слоями безопасности и наблюдаемости.
Инструменты: Python 3.10+, LangChain (агент с ReAct), FastAPI (веб‑интерфейс), FAISS (векторное хранилище), pytest для оценки.
Шаги:
- Создайте класс
AgentLoop, который принимает модель (LLM) и реестр инструментов. - Добавьте слой
ToolSystemс инструментамиCalculatorиWikiSearch. - Реализуйте слой
SafetyGuardrailsдля фильтрации запросов (блокировка мата через регулярки). - Встройте
Observabilityс помощью логирования каждого шага (используйтеlogging+json). - Добавьте
RAGPipelineна базе FAISS и OpenAI Embeddings для ответа по документам. - Оберните всё в FastAPI‑эндпоинт
/ask, который принимает сессию (идентификатор) и вопрос. - Реализуйте
SessionManagementс TTL = 10 минут и in‑memory хранилищем. - Напишите тест с помощью
pytest, оценивающий корректность вызова инструментов и фильтрацию.
Ожидаемый результат: агент, который на вопрос "Сколько будет 5+3?" вызывает калькулятор и возвращает 8, на вопрос "Найди информацию о Франции" ищет в Wikipedia и возвращает суммаризацию, а на запрос с матом отвечает "Запрос отклонён". Все шаги логируются в файл.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 737 | Что такое Agentic RAG? |
| 739 | Как спроектировать multi‑agent систему? |
| 740 | Как обеспечить safety в AI‑агентах? |
| 741 | Как настроить observability для агентов? |
| 742 | Как организовать память (memory) в агентах? |
| 743 | Как устроен RAG‑конвейер в архитектуре Harness? |
Навигация
- Предыдущий: 737
- Следующий: 739
- Индекс: 00. Индекс разборов