Cognition — против
«Actions carry implicit decisions, and conflicting decisions carry bad results». Параллельные суб-агенты делают несовместимые допущения → хрупкость. Рекомендация — single-threaded агент + компрессия контекста.
Термин многозначен — их легко спутать, но они про разное. Доминирующее в 2025–2026 — первое.
Софт-обвязка, превращающая «голую» модель в агента: цикл, инструменты, контекст, права.
Claude Code · Codex · Cursor · Devin
Суть: runtime.
Фреймворк прогона модели по бенчмаркам и скоринга выводов — ради воспроизводимости.
lm-eval · HELM · SWE-bench
Суть: измерение.
Связаны они через агентные бенчмарки: SWE-bench (eval harness) запускает агента (agentic harness) в Docker — и потому меряет и обвязку, и модель сразу. Это и обнажает «harness effect» (§5).
Harness — вся инфраструктура вокруг LLM, кроме самого рассуждения модели. Голая модель — это stateless-предсказатель следующего токена: у неё нет ни состояния между ходами, ни доступа к внешнему миру. Harness даёт ей «руки, глаза и рабочее место» и закручивает в цикл. Каноничная формула практиков:
Agent = Model + Harness
где Harness = «всё, кроме весов»: системные промпты, retrieval-стратегии, permission model, tool surfaces, memory-файлы (CLAUDE.md / AGENTS.md), hooks, sub-agent topology, feedback loops.
Базовое определение агента (Anthropic, Building Effective Agents): «LLMs using tools based on environmental feedback in a loop». Load-bearing часть — именно «in a loop». Сама Anthropic описывает свой инструмент так: «Claude Code serves as the agentic harness around Claude».
Каноничный цикл Anthropic: gather context → take action → verify work → repeat.
| Компонент | Что делает |
|---|---|
| Agent loop | perceive→reason→act; корень — ReAct (рассуждение корректирует план, действия дают feedback из среды) |
| Tool-calling | без инструментов модель умеет только текст. Harness перехватывает вызов, валидирует, исполняет в изоляции, возвращает очищенный результат — «the model never touches external systems directly» |
| Context / память | компакция, structured note-taking (файлы), sub-agent isolation, just-in-time retrieval — см. §4 |
| System prompt | «на правильной высоте»: сильные гибкие эвристики, не хардкод и не лозунги |
| Оркестрация | суб-агенты с изолированными окнами; 5 паттернов: chaining, routing, parallelization, orchestrator-workers, evaluator-optimizer |
| Verification | rules-based / visual / LLM-as-judge; ошибки инструментов — как actionable feedback модели |
| Permissions | режимы доступа, чекпойнты (откат правок), sandbox исполнения (Docker / VM) |
Anthropic называет это преемником prompt engineering: не «как писать инструкции», а «какая конфигурация контекста вероятнее всего даст нужное поведение». Ключевая идея — контекст это конечный, истощающийся ресурс: attention растёт как n² по токенам, и есть «context rot» — точность падает с ростом числа токенов.
Четыре техники, которыми harness управляет окном:
hot.md → index.md → wiki-pages — это ровно «structured note-taking + just-in-time retrieval»
как harness-память: курируемый граф вместо сырых чанков (ср. синтез «Naive RAG vs LLM wiki»).
Центральный эмпирический факт: одна и та же модель показывает резко разные результаты под разными harness'ами. Разброс от обвязки сопоставим или больше, чем от смены модели.
Почему расходятся — «the wire format is part of the model». Пост-трейнинг вшивает в инстинкты модели конвенции конкретного harness'а: модели OpenAI обучены на patch-формате правок, модели Anthropic — на string-replacement. Любая модель может использовать чужой формат, но это «costs extra reasoning tokens and produces more mistakes». Отсюда вертикальная интеграция: Anthropic co-design'ит Claude Code с пост-трейнингом; Cursor обучил свою модель Composer прямо внутри своего harness'а. Лозунг эпохи — «the model is commodity, the harness is moat».
Способности мигрируют из обвязки в модель: Anthropic регулярно удаляет шаги планирования из Claude Code, когда новая модель их интернализует; OpenAI вшил компакцию прямо в модель (GPT-5.1-Codex-Max); Vercel выкинул 80% инструментов агента — success rate вырос с 80% до 100%, токены вдвое меньше, латентность 724с → 141с (та же модель).
Топологический выбор внутри harness'а — жёсткий датированный спор двух лабов (12–13 июня 2025):
«Actions carry implicit decisions, and conflicting decisions carry bad results». Параллельные суб-агенты делают несовместимые допущения → хрупкость. Рекомендация — single-threaded агент + компрессия контекста.
Orchestrator-worker (Opus 4 lead + Sonnet 4 subagents) обыгрывает single-agent Opus 4 на +90.2% на research-задачах. Но: ~15× токенов против чата.
Стандартизированная обвязка, прогоняющая промпты через модель на фиксированных задачах и скорящая выводы. Смысл — воспроизводимость и сравнимость: «evaluation with publicly available prompts ensures reproducibility and comparability between papers».
Мост к §5: SWE-bench — это dual evaluation agent harness'а и базовой модели. Именно поэтому одни и те же веса дают разные цифры у разных вендоров — обвязка обычно и есть объяснение.