Перейти к основному содержимому
Продвинутый7 мин1200 слов

AI agent harness: как спроектировать надежный runtime

Практический гайд по AI agent harness: execution loop, tools, sandbox, durable state, context assembly, permissions, checkpoints, evals, observability и recovery.

Содержание статьи
  1. 01Короткий ответ: harness — это управляемый runtime вокруг модели
  2. 02Минимальная архитектура: session, loop, tools, sandbox и state
  3. 03Долгим задачам нужны checkpoints, а не иллюзия безграничной памяти
  4. 04Authority и side effects проверяются вне модели
  5. 05Evaluation: тестируйте harness как систему, а не только финальный ответ
  6. 06Как выбрать, упростить и развернуть harness

Короткий ответ: harness — это управляемый runtime вокруг модели

AI agent harness — это программный контур, который многократно вызывает модель, собирает контекст, маршрутизирует tool calls, сохраняет состояние и решает, когда run нужно продолжить, остановить, восстановить или передать человеку. Модель предлагает следующий шаг, но harness владеет execution loop и средой. Именно здесь находятся deadlines, лимиты шагов, permissions, sandbox, retries, checkpoints, tracing и проверка terminal outcome.

Не стоит использовать этот термин как модное название для одного system prompt или SDK wrapper. Prompt engineering настраивает инструкции; context engineering отбирает информацию для конкретного model call; planner предлагает путь; framework дает abstractions; harness связывает эти части с реальным runtime contract. Один продукт может поставлять готовый harness, другой — primitives для собственного, но бренд модели не определяет надежность всей системы.

  • Model → предлагает ответ или tool call в пределах видимого контекста.
  • Harness → управляет loop, state, tools, budgets, isolation и recovery.
  • Application policy → определяет authority, approvals и допустимый outcome.
  • Environment → выполняет команды и хранит authoritative artifacts.

Минимальная архитектура: session, loop, tools, sandbox и state

Production baseline требует пяти отдельных контрактов. Session — append-only журнал событий с correlation ID. Loop собирает input, вызывает модель, валидирует response и применяет stop policy. Tool gateway публикует узкий allowlist и повторно проверяет аргументы и права. Sandbox изолирует filesystem, процессы и network destinations. State store хранит task status, artifact references, approvals и postconditions независимо от chat transcript.

Такое разделение позволяет заменять компоненты. Модель или prompt можно обновить без миграции authoritative task state; sandbox можно усилить без переписывания planner; tool implementation можно откатить, сохранив trace. Anthropic описывает session, harness и sandbox как отдельные части managed-agent systems, а OpenAI — model-native harness вместе с sandbox execution. Это first-party описания архитектуры, а не доказательство универсального превосходства конкретного продукта.

  • Session log: model calls, tool requests, results, approvals и terminal reason.
  • Task state: planned, running, blocked, awaiting-approval, completed или failed.
  • Artifact store: versioned outputs, checksums, provenance и owner.
  • Sandbox policy: mounts, secrets, network egress, resource limits и cleanup.
  • Control plane: budgets, kill switch, concurrency, resume и reconciliation.

Долгим задачам нужны checkpoints, а не иллюзия безграничной памяти

Long-running agent проходит через context windows, restarts и approval waits. Compaction помогает уместить историю, но не заменяет durable state. Checkpoint должен содержать task version, выполненные acceptance criteria, проверенные artifacts, открытые риски, pending approvals, последние authoritative postconditions и один конкретный next step. Новый session начинает с проверки environment и state, а не с доверия к оптимистичному summary предыдущей модели.

Anthropic в исследовании long-running harness использовала feature list, progress artifact, version control и базовую end-to-end проверку перед следующим изменением. Переносимый принцип — не имя файла, а handoff protocol: работа разбивается на завершаемые slices, статус подтверждается тестом, а следующий worker получает короткий проверяемый пакет. Для support или research таким пакетом могут быть case state, evidence ledger и незавершенное действие, а не git commit.

Authority и side effects проверяются вне модели

Harness не должен отдавать модели универсальный каталог tools и надеяться, что prompt удержит границы. Для каждого шага tool gateway проверяет actor, tenant, resource, action, parameters, risk tier, approval version и expiry. Read, draft и write operations используют разные credentials. Consequential action получает idempotency key, preflight preview и ожидаемую postcondition; timeout после вызова ведет к reconciliation, а не к слепому retry.

Sandbox снижает blast radius, но сам по себе не создает business authorization. Процесс может быть изолирован и при этом иметь опасный token или разрешенный egress к production API. Поэтому effective authority — пересечение sandbox policy, credential scope, tool contract, application rules и действующего approval. Prompt injection, compromised dependency или ошибка модели не должны расширять это пересечение текстовой инструкцией.

  • Unknown permission или stale approval → fail closed.
  • Неизвестный результат write call → reconcile before retry.
  • Новый destination или scope → отдельная authorization decision.
  • Kill switch → блокирует новые действия, сохраняя forensic evidence и recovery path.

Evaluation: тестируйте harness как систему, а не только финальный ответ

Golden tasks должны проверять outcome и trajectory. Детерминированные graders подтверждают schema, filesystem diff, API postcondition, budget и запрещенные events. Model grader может оценить качество открытого artifact, но не заменяет проверку permissions или фактического side effect. Human review нужен для неоднозначной полезности и material risk. Критическое policy violation нельзя усреднять с хорошим стилем ответа.

Failure suite должна включать context exhaustion, corrupted checkpoint, duplicate delivery, lost tool response, partial commit, revoked credential, stale branch, unavailable dependency, prompt injection в retrieved content и агента, который объявляет completion до прохождения acceptance test. Сравнивайте не только task success, но verified progress per run, unnecessary tool calls, recovery success, reviewer minutes, wall-clock time и cost per accepted outcome на одном corpus. Vendor-reported experiments не являются вашим baseline.

Как выбрать, упростить и развернуть harness

Начните с bounded read-only задачи, для которой уже есть baseline детерминированного workflow. Добавьте один model loop, два-три distinct tools, explicit terminal states, task state вне transcript и полный trace. Затем введите restart fixture, corrupted-state fixture и canary на малом сегменте. Multi-agent planner-generator-evaluator, длинные автономные loops или write authority добавляйте только тогда, когда более простой harness измеримо не проходит зафиксированные task slices.

Harness кодирует предположения о слабых местах текущей модели, поэтому каждый workaround должен иметь owner, eval и review date. После model или tool upgrade проведите ablation: нужны ли еще отдельный planner, принудительный context reset, избыточные critique loops или большой prompt? Rollback возвращает совместимый комплект loop policy, tool versions и checkpoint schema; active writes сначала проходят reconciliation. Лучший harness — не самый большой, а минимальный контур, который доказуемо завершает ваши задачи в заданных границах.

  • Define → outcome, authority, environment и terminal states.
  • Instrument → session events, state transitions, budgets и artifacts.
  • Evaluate → success, policy, recovery, efficiency и human acceptance.
  • Canary → read-only, bounded concurrency, kill switch и on-call owner.
  • Simplify → регулярно удаляйте scaffolding, который больше не дает измеримого gain.

Практические примеры

Harness для миграции небольшого сервиса

Initializer фиксирует acceptance criteria, команды запуска и feature checklist. Каждый run берет один slice, работает в изолированной branch и sandbox, запускает tests, записывает artifact hash и обновляет checkpoint только после PASS. Merge, secrets и production deploy остаются за отдельным approval workflow; после restart агент сначала сверяет repository state с checkpoint.

Harness для evidence brief без write authority

Research agent получает allowlisted search и document-read tools, хранит claim ledger вне transcript и завершается только после coverage gate. Если источник недоступен или противоречив, state переходит в blocked. Harness может возобновить поиск из checkpoint, но не имеет credentials для отправки отчета клиенту или изменения внешней системы.

FAQ

Чем AI agent harness отличается от agent framework?

Framework дает abstractions и библиотеки; harness — конкретный runtime-контур с loop, tools, environment, state, permissions, budgets, evals и recovery для вашей системы. Framework может быть его частью.

Нужен ли multi-agent harness для долгой задачи?

Не обязательно. Сначала проверьте single-agent loop с durable state, checkpoints и внешними tests. Добавляйте специализированные роли только для измеренной проблемы в planning, generation или evaluation.

Достаточно ли compaction для работы через много context windows?

Нет. Compaction сжимает model context, но не является authoritative state. Нужны versioned checkpoints, artifact references, acceptance status и recovery-проверка после нового session.

Что является минимальным production gate?

Репрезентативный eval set, ноль критических authority violations, проверенные restart и reconciliation, bounded resources, observable terminal states, kill switch, owner и совместимый rollback path.

Связанные материалы

Источники

  1. Anthropic — Effective harnesses for long-running agentsофициальный
  2. Anthropic — Scaling Managed Agents: Decoupling the brain from the handsофициальный
  3. Anthropic — Harness design for long-running application developmentофициальный
  4. OpenAI — The next evolution of the Agents SDKофициальный
  5. OpenAI — Practices for Governing Agentic AI Systemsпервичный