Что такое Agent Harness?
Agent harness — это весь слой выполнения, окружающий AI-модель — системные промпты, инструменты, память, песочницы, middleware и логика оркестрации, которые превращают языковую модель в работающего агента. Если вы не модель, вы — harness.
Внутри Harness
«Сырая» модель принимает текст и генерирует текст. Она не может обращаться к файлам, вызывать API, поддерживать состояние или выполнять код. Harness предоставляет все эти возможности — это каркас, который делает интеллект модели полезным.
Системный Промпт
Определяет роль, возможности и поведенческие ограничения агента.
Системный промпт — это первый уровень контроля harness — он формирует то, как модель интерпретирует каждый запрос пользователя и какие стратегии применяет.
Инструменты и Навыки
API, базы данных, веб-поиск, файловые системы, выполнение кода — всё, что агент может использовать.
Инструменты регистрируются с описаниями, чтобы модель знала, что доступно. Навыки объединяют связанные инструменты и инструкции для постепенного раскрытия.
Логика Оркестрации
Цикл агента, создание субагентов, маршрутизация моделей и декомпозиция задач.
Harness запускает цикл ReAct — рассуждение, действие, наблюдение, повтор. Он управляет тем, когда создавать субагентов, к какой модели маршрутизировать и когда остановиться.
Память и Состояние
История разговоров, контекстные файлы и постоянные знания между сессиями.
Файловая система — это фундаментальный примитив памяти. Файлы вроде AGENTS.md позволяют агентам надёжно хранить и извлекать знания между сессиями.
Песочницы
Изолированные среды выполнения для безопасного запуска кода, сгенерированного агентом.
Песочницы предоставляют агенту безопасное рабочее пространство для запуска кода, установки зависимостей и проверки результатов без риска для хост-среды.
Middleware и Хуки
Детерминированная логика, срабатывающая до/после вызовов моделей и выполнения инструментов.
Middleware обрабатывает сжатие, повторные попытки, ограничения, одобрение человека в цикле и контроль затрат — всё, что нужно запускать в определённой точке цикла.
Цикл Агента
# Harness запускает цикл агента
def run_agent(model, tools, user_message):
messages = [system_prompt, user_message]
while True:
# 1. Harness предоставляет контекст модели
response = model.generate(messages, tools=tools)
if response.tool_calls:
# 2. Harness выполняет вызовы инструментов
for call in response.tool_calls:
result = execute_tool(call)
messages.append(result)
else:
# 3. Модель завершила работу — возвращаем ответ
return response.text
Модель решает что делать. Harness решает как делать. Именно это разделение делает агентов гибкими, тестируемыми и заменяемыми.
— Vivek Trivedy, "The Anatomy of an Agent Harness" (LangChain, 2026)
Middleware: Как Вы Формируете Harness
Middleware встраивается в цикл агента на каждом шаге — до и после вызовов моделей, до и после вызовов инструментов, при запуске и завершении. Каждая часть обрабатывает одну задачу и свободно комбинируется с любой другой. Так вы адаптируете harness под свою конкретную задачу.
Управление Контекстом
Предотвращайте переполнение контекста и сохраняйте фокус модели на важном.
- Middleware суммаризации сжимает длинные разговоры
- Редактирование контекста удаляет шумные или нерелевантные сообщения
- Выгрузка вывода инструментов удерживает крупные результаты вне контекста
Память и Обучение
Загружайте знания при запуске, сохраняйте выводы в конце выполнения.
- Файлы AGENTS.md вставляются в контекст при старте
- Навыки загружаются постепенно по мере необходимости
- Middleware файловой системы для надёжного состояния
Безопасность и Ограничения
Применяйте политики, которые должны срабатывать при каждом вызове независимо от поведения модели.
- Обнаружение и маскирование PII
- Врата одобрения человека в цикле
- Фильтры вывода и ограничения действий
Контроль Затрат
Предотвращайте неконтролируемое накопление затрат на токены.
- Лимиты вызовов модели на задачу
- Ограничение частоты вызовов инструментов
- Кэширование промптов для долгих задач
Восстановление после Ошибок
Обрабатывайте временные сбои с помощью логики повторных попыток и резервных вариантов.
- Повтор инструментов с экспоненциальной задержкой
- Резервная модель при недоступности основной
- Обработчики ошибок потоков
Наблюдаемость
Точно видьте, что делает агент на каждом шаге.
- Логирование трассировки для каждого вызова модели и инструмента
- Обработчики потоков, маршрутизирующие события к различным потребителям
- Отслеживание пользовательского состояния через хуки middleware
from langchain import create_agent
from langchain.middleware import (
SummarizationMiddleware,
HumanInTheLoopMiddleware,
ToolRetryMiddleware,
)
agent = create_agent(
model="anthropic:claude-sonnet-4-6",
tools=tools,
middleware=[
SummarizationMiddleware(),
HumanInTheLoopMiddleware(approval_tools=["send_email"]),
ToolRetryMiddleware(max_retries=3),
],
)
Middleware группирует связанную логику в композируемые, общие модули. Один и тот же middleware может использоваться повторно для всех агентов в организации — новые агенты наследуют проверенное поведение без необходимости его пересоздавать.
— Sydney Runkle, "How to Build a Custom Agent Harness" (LangChain, 2026)
Руководства vs. Сенсоры
Хорошо построенный harness служит двум целям: он увеличивает вероятность того, что агент справится с первого раза (руководства), и обеспечивает петли обратной связи для самокоррекции до того, как ошибки попадут на глаза человеку (сенсоры).
Направляют агента до действия. Руководства увеличивают вероятность хорошего результата с первой попытки.
Наблюдают после действия агента и помогают ему самокорректироваться. Особенно эффективны, когда оптимизированы для потребления LLM.
По отдельности вы получаете либо агента, повторяющего одни и те же ошибки (только feedback), либо агента, кодирующего правила, но никогда не узнающего, работают ли они (только feedforward). Вам нужны оба.
— Birgitta Böckeler, "Harness Engineering" (Martin Fowler, 2026)
Зачем Harness Engineering?
Соответствие Задача-Harness
Harness для агента обслуживания клиентов выглядит очень иначе по сравнении с harness для долгоживущего кодирующего агента. Лучшие агенты строятся не просто с мощными моделями — они строятся с harness, плотно соответствующими задаче.
Независимость от Модели
Поскольку harness отделён от модели, вы можете переключаться между GPT-5, Claude, Gemini или open-source моделями без переписывания логики агента. Harness абстрагирует слой модели.
Композируемость
Middleware, инструменты и навыки свободно комбинируются. Каждая часть обрабатывает одну задачу. Один и тот же middleware памяти работает для всех агентов. Новые возможности — в одном middleware.
Наблюдаемость и Доверие
Каждое решение прослеживается. Видно, что рассуждала модель, какие инструменты она вызвала, какие данные получила и почему. Необходимо для отладки, соответствия и построения доверия к автономным системам.
Часто Задаваемые Вопросы
В чём разница между моделью и harness?
Модель — это AI — языковая модель, которая рассуждает, планирует и генерирует текст. Harness — это всё остальное — системные промпты, инструменты, память, песочницы, логика оркестрации и middleware, окружающие модель. Одна модель может только генерировать текст. Harness превращает её в агента, способного действовать в реальном мире.
Почему не положить всё в системный промпт?
Системные промпты — это статический текст. Они не могут выполнять код, вызывать API, управлять состоянием или динамически применять политики. Harness предоставляет возможности времени выполнения — он может выполнять вызовы инструментов, управлять переполнением контекста, повторять неудачные операции и применять ограничения независимо от того, что пытается делать модель. Некоторые вещи не могут и не должны находиться в промпте.
Что такое middleware в agent harness?
Middleware — это слой настройки, встраиваемый в цикл агента в определённых точках — до и после вызовов моделей, до и после выполнения инструментов, при запуске и завершении. Каждая часть middleware обрабатывает одну задачу (сжатие, повторы, ограничения, логирование) и комбинируется с другими. Это способ адаптировать универсальный harness под конкретную задачу.
Можно ли использовать один harness с разными моделями?
Да. Harness и модель — отдельные слои. Можно переключаться с GPT-5 на Claude или open-source модель без изменения инструментов, памяти, middleware или логики оркестрации. Эта независимость от модели является ключевым принципом проектирования паттерна harness.
Что такое руководства и сенсоры в harness engineering?
Руководства — это элементы управления feedforward, направляющие агента до действия — системные промпты, код-конвенции, документация архитектуры и навыки. Сенсоры — это элементы управления feedback, наблюдающие после действия агента и помогающие ему самокорректироваться — линтеры, тестовые наборы, агенты ревью кода и мутационное тестирование. Хорошему harness нужны оба, чтобы предотвращать ошибки и обнаруживать их при возникновении.
Что такое соответствие задача-harness?
Соответствие задача-harness — это то, насколько хорошо ваш harness соответствует реальным требованиям задачи — необходимому контексту, возникающим ошибкам, применяемым политикам и среде функционирования. Кодирующему агенту нужен доступ к файловой системе, песочницам и тестовым раннерам. Агенту обслуживания клиентов нужна память, процессы одобрения и интеграция с CRM. Лучшие агенты строятся с harness, плотно соответствующими их миссии.
Готовы Строить с Harness?
Создайте AI-агента с пользовательским harness, адаптированным под ваш бизнес. Подключите свои инструменты, настройте middleware и позвольте агенту сделать остальное.