πŸ“„ Анатомия каркаса Π°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ систСмы (The Anatomy of an Agent Harness)

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ сила AI-Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π»Π΅ΠΆΠΈΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° Π² инфраструктурС Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π΅Ρ‘: Ρ†ΠΈΠΊΠ»Π΅ оркСстрации, инструмСнтах, памяти, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ контСкстом, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ… ΠΈ бСзопасном исполнСнии. Автор ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½-Π°Π³Π΅Π½Ρ‚ - это ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго инТСнСрия agent harness, ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ 12 ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‚Π°ΠΊΠΎΠΉ систСмы.

πŸ”— ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»: ΠŸΠΎΡΡ‚ ΠΈ Ρ‚Ρ€Π΅Π΄ Akshay Pachaar Π² X)


πŸ›οΈ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ

  • АгСнт = ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Harness = инфраструктура: Π°Π³Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠ°ΠΊ эффСкт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ собранной систСмы Π²ΠΎΠΊΡ€ΡƒΠ³ LLM, Π° Π½Π΅ β€œΠΈΠ· коробки” ΠΌΠΎΠ΄Π΅Π»ΠΈ.
  • Главная Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°: β€œIf you’re not the model, you’re the harness.” Всё, Ρ‡Ρ‚ΠΎ Π½Π΅ вСса ΠΌΠΎΠ΄Π΅Π»ΠΈ, - это ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ исполнСния.
  • ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ - Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚Π½Ρ‹ΠΉ рСсурс: Π΄Π°ΠΆΠ΅ большиС ΠΎΠΊΠ½Π° Π΄Π΅Π³Ρ€Π°Π΄ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠΎ качСству; Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ β€œΠ±ΠΎΠ»ΡŒΡˆΠ΅ токСнов”, Π° β€œΠ²Ρ‹ΡˆΠ΅ сигнал”.
  • ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ Π΄Π°Ρ‘Ρ‚ Ρ†ΠΈΠΊΠ» Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ: тСсты, Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ judge-Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ€Π°Π·Ρ‹.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° окруТСния: ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°Π²Π°Ρ‚ΡŒ сильно Ρ€Π°Π·Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² harness.

πŸ’‘ Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ (Use Cases)

  • AI coding agents: IDE/CLI-Π°Π³Π΅Π½Ρ‚Ρ‹ для Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, поиска ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ, запуска ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π°Π²Ρ‚ΠΎΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
  • Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ copilot-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΈ с управляСмым доступом ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ инструмСнтам.
  • АвтономныС workflow-Π±ΠΎΡ‚Ρ‹: ΠΌΠ½ΠΎΠ³ΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ процСссы с Π΄ΠΎΠ»Π³ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ€ΡƒΡ‡Π½Ρ‹ΠΌΠΈ подтвСрТдСниями ΠΈ recover послС ошибок.
  • ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Ρ‹Π΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ‹: Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° спСциалистов Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ΄ΠΈΠ½ Π°Π³Π΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½ инструмСнтами/ролями.

πŸ› οΈ ВСхничСский Ρ€Π°Π·Π±ΠΎΡ€

Автор выдСляСт 12 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² production-harness:

  1. Π¦ΠΈΠΊΠ» оркСстрации (Orchestration Loop): prompt -> LLM -> tool calls -> observations -> repeat.
  2. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (Tools): схСмы, валидация Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², sandbox, нормализация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².
  3. ΠŸΠ°ΠΌΡΡ‚ΡŒ (Memory): short-term (сСссия) + long-term (CLAUDE.md, MEMORY.md, stores, session backends).
  4. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ контСкстом (Context Management): compaction, masking, JIT retrieval, Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ subagents.
  5. Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° (Prompt Construction): иСрархия ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ²: system/tool/developer/user/history.
  6. ΠŸΠ°Ρ€ΡΠΈΠ½Π³ Π²Ρ‹Ρ…ΠΎΠ΄Π° (Output Parsing): Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ tool_calls, schema-constrained outputs.
  7. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм (State Management): checkpoints, resume, structured scratchpads.
  8. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок (Error Handling): transient/recoverable/user-fixable/unexpected + ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ retries.
  9. Guardrails ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: input/output/tool guardrails, tripwire, permission gates.
  10. ΠŸΠ΅Ρ‚Π»ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Verification Loops): deterministic checks + inferential checks.
  11. ΠžΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡ субагСнтов: fork/teammate/worktree, handoffs, nested graphs.
  12. Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» выполнСния: условия Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, Π»ΠΈΠΌΠΈΡ‚Ρ‹ шагов/Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², interruption-safe flow.

The Loop in Motion: ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ walkthrough

Π¨Π°Π³ 1. Prompt Assembly (сбор Π²Ρ…ΠΎΠ΄Π°)
Harness собираСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ контСкст Π² фиксированном порядкС: system prompt -> tool schemas -> memory -> history -> user message. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ставится Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΠΌΠΏΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ эффСкт β€œLost in the Middle”.

Π¨Π°Π³ 2. LLM Inference (Π²Ρ‹Π·ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ)
Π‘ΠΎΠ±Ρ€Π°Π½Π½Ρ‹ΠΉ контСкст отправляСтся Π² API ΠΌΠΎΠ΄Π΅Π»ΠΈ. На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ:

  • ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый ΠΎΡ‚Π²Π΅Ρ‚;
  • tool_calls;
  • комбинация тСкста ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² инструмСнтов;
  • сигнал handoff Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π°.

Π¨Π°Π³ 3. Output Classification (ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ ΠΎΡ‚Π²Π΅Ρ‚Π°)
Harness классифицируСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  • Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкст Π±Π΅Π· tool_calls -> ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π½Π° Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚;
  • Ссли Π΅ΡΡ‚ΡŒ tool_calls -> ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ исполнСнию инструмСнтов;
  • Ссли handoff -> смСна Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π° ΠΈ пСрСзапуск Ρ†ΠΈΠΊΠ»Π°.

Π¨Π°Π³ 4. Tool Execution (исполнСниС инструмСнтов)
Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ: схСма Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΡ€Π°Π²Π° доступа, sandbox-ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°, Π»ΠΈΠΌΠΈΡ‚Ρ‹.
Read-only ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, mutating-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π¨Π°Π³ 5. Result Packaging (ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° наблюдСний)
Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ инструмСнтов (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ошибки) пСрСводятся Π² структурированный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ модСль ΠΌΠΎΠΆΠ΅Ρ‚ β€œΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒβ€ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ…ΠΎΠ΄Π΅. Ошибка Π½Π΅ Π»ΠΎΠΌΠ°Π΅Ρ‚ Ρ†ΠΈΠΊΠ», Π° становится Π²Ρ…ΠΎΠ΄ΠΎΠΌ для self-correction.

Π¨Π°Π³ 6. Context Update (ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ контСкста)
НовыС наблюдСния Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΊ Π»ΠΈΠΌΠΈΡ‚Ρƒ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ compaction: сТатиС истории, маскированиС старых outputs, выборочная ΠΏΠΎΠ΄Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ.

Π¨Π°Π³ 7. Loop / Termination Check (ΠΏΠΎΠ²Ρ‚ΠΎΡ€ ΠΈ остановка)
БистСма возвращаСтся ΠΊ ΡˆΠ°Π³Ρƒ 1 ΠΈ повторяСт Ρ†ΠΈΠΊΠ» Π΄ΠΎ выполнСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· условий Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ:

  • Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π±Π΅Π· tool_calls;
  • исчСрпан Π»ΠΈΠΌΠΈΡ‚ шагов/Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²;
  • сработал guardrail/tripwire;
  • ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π» Π·Π°Π΄Π°Ρ‡Ρƒ;
  • модСль Π²Π΅Ρ€Π½ΡƒΠ»Π° safety refusal.

Для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡: Π΄Π²ΡƒΡ…Ρ„Π°Π·Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

Для Π·Π°Π΄Π°Ρ‡, Π½Π΅ Π²ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² ΠΎΠ΄Π½ΠΎ контСкстноС ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ:

  • Initializer Agent: ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, прогрСсс-Ρ„Π°ΠΉΠ»Ρ‹, baseline commit, список Ρ„ΠΈΡ‡.
  • Coding Agent: Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сСссиях Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ прогрСсс/Π»ΠΎΠ³ΠΈ, Π±Π΅Ρ€Ρ‘Ρ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΡƒΡŽ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, вносит измСнСния, фиксируСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ обновляСт summary.

How Real Frameworks Implement the Pattern

Anthropic (Claude Agent SDK / Claude Code)

  • МодСль исполнСния: query() ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ Π°Π³Π΅Π½Ρ‚Π½Ρ‹ΠΉ runtime ΠΈ стримит события ΠΊΠ°ΠΊ async iterator.
  • Ѐилософия: β€œdumb loop”, Π³Π΄Π΅ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° harness управляСт Ρ…ΠΎΠ΄Π°ΠΌΠΈ, инструмСнтами ΠΈ контСкстом.
  • ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ†ΠΈΠΊΠ»: Gather -> Act -> Verify (собрал контСкст, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» дСйствиС, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚).

OpenAI (Agents SDK / Codex Harness)

  • Π’ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π°: Runner (sync/async/stream), code-first orchestration Π±Π΅Π· ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ graph DSL.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹: function tools, hosted tools, MCP-ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, плюс guardrails Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… уровнях.
  • АрхитСктура Codex: Π΅Π΄ΠΈΠ½Ρ‹ΠΉ harness для CLI/IDE/Web, Π·Π° счёт Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ интСрфСйсами консистСнтно.

LangGraph / LangChain

  • ΠŸΠΎΠ΄Ρ…ΠΎΠ΄: явный state graph с ΡƒΠ·Π»Π°ΠΌΠΈ LLM/tool ΠΈ условными ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°ΠΌΠΈ.
  • Бильная сторона: ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ workflow, checkpoints, resume ΠΈ β€œtime-travel” ΠΎΡ‚Π»Π°Π΄ΠΊΠ° состояний.
  • Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ: ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ AgentExecutor ΠΊ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠΉ graph-ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ deep-agent ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌ.

CrewAI

  • РолСвая модСль: Agent (Ρ€ΠΎΠ»ΡŒ + Ρ†Π΅Π»ΠΈ + инструмСнты), Task (Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹), Crew (коопСрация).
  • Flows-слой Π΄Π°Ρ‘Ρ‚ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ backbone (ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ/валидация), Π° Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠΈΡŽ.

AutoGen / Microsoft Agent Framework

  • Основа: conversation-driven orchestration ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ-спСциалистами.
  • Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹: sequential, concurrent (fan-out/fan-in), group chat, handoff, manager-led coordination.

Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌ
Π Π°Π·Π½Ρ‹Π΅ экосистСмы Π΄Π΅Π»Π°ΡŽΡ‚ ставку Π½Π° Ρ€Π°Π·Π½ΡƒΡŽ β€œΡ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρƒβ€ harness: ΠΎΡ‚ Ρ‚ΠΎΠ½ΠΊΠΎΠ³ΠΎ loop-first ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π΄ΠΎ graph-heavy оркСстрации. Но Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Ρƒ всСх ΠΎΠ΄ΠΈΠ½: контСкст -> дСйствиС -> наблюдСниС -> ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° -> итСрация.

Seven Decisions That Define Every Harness

НиТС 7 Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ качСство, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Π°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ систСмы:

  1. Single-agent vs Multi-agent
    ΠΠ°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ сильного Π°Π³Π΅Π½Ρ‚Π°. ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ смысл, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ· инструмСнтами ΠΈΠ»ΠΈ явно Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌΡ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹ Π·Π°Π΄Π°Ρ‡.

  2. ReAct vs Plan-and-Execute
    ReAct Π³ΠΈΠ±Ρ‡Π΅ Π² нСизвСстной срСдС, Π½ΠΎ Π΄ΠΎΡ€ΠΎΠΆΠ΅ ΠΏΠΎ шагам. Plan-and-Execute быстрСС ΠΈ прСдсказуСмСС Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ… с понятной структурой.

  3. БтратСгия управлСния контСкстом
    Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹: очистка ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, суммаризация Π΄ΠΈΠ°Π»ΠΎΠ³Π°, masking наблюдСний, структурированныС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ subagents.

  4. Π”ΠΈΠ·Π°ΠΉΠ½ verification loop
    Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ (tests/linters/types) Π΄Π°ΡŽΡ‚ ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ; inferential-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ (LLM-as-judge) ловят смысловыС Π΄Π΅Ρ„Π΅ΠΊΡ‚Ρ‹.

  5. АрхитСктура permissions ΠΈ safety
    Π‘ΠΎΠ»Π΅Π΅ permissive Ρ€Π΅ΠΆΠΈΠΌ ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ риск. Π‘ΠΎΠ»Π΅Π΅ restrictive Ρ€Π΅ΠΆΠΈΠΌ бСзопаснСС, Π½ΠΎ добавляСт friction ΠΈ latency.

  6. БтратСгия скоупа инструмСнтов
    Π§Π΅ΠΌ большС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ доступных tools, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΡˆΡƒΠΌ ΠΈ шанс ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°: Π΄Π°Π²Π°Ρ‚ΡŒ минимально Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ΄ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ шаг.

  7. Π’ΠΎΠ»Ρ‰ΠΈΠ½Π° harness (harness thickness)
    Π§Ρ‚ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ оркСстратора: Ρ‚ΠΎΠ½ΠΊΠΈΠΉ harness опираСтся Π½Π° ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ; толстый harness Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ явным ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€: эти 7 Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ стоит Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ явно Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, ΠΈΠ½Π°Ρ‡Π΅ систСма β€œΠ΄Ρ€Π΅ΠΉΡ„ΡƒΠ΅Ρ‚β€ Π² нСуправляСмый Π³ΠΈΠ±Ρ€ΠΈΠ΄.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ тСзис ΡΡ‚Π°Ρ‚ΡŒΠΈ

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Π°Ρ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ AI-Π°Π³Π΅Π½Ρ‚Π° находится Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ управляСтС ограничСниями: контСкстом, ошибками, ΠΏΡ€Π°Π²Π°ΠΌΠΈ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈ восстановлСниСм послС сбоСв.

# Π£ΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ скСлСт Ρ†ΠΈΠΊΠ»Π° harness
def run_agent_harness(state):
    while not state.is_done():
        prompt = build_prompt(state)
        output = llm_infer(prompt)
        if output.tool_calls:
            results = execute_tools_safely(output.tool_calls)
            state = update_state(state, results)
            state = compact_context_if_needed(state)
            continue
        state = finalize(state, output.text)
    return state

βš–οΈ ΠŸΠ»ΡŽΡΡ‹ ΠΈ ΠœΠΈΠ½ΡƒΡΡ‹

πŸ‘ ΠŸΠ»ΡŽΡΡ‹πŸ‘Ž ΠœΠΈΠ½ΡƒΡΡ‹
ΠŸΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ качСство ΠΈ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Π£ΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ
Π”Π°Ρ‘Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π°ΡƒΠ΄ΠΈΡ‚ дСйствийВрСбуСт дисциплины Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ инструмСнтов ΠΈ ΠΏΡ€Π°Π²
Π£Π»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ ошибкам ΠΈ long-running Π·Π°Π΄Π°Ρ‡Π°ΠΌΠœΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ latency ΠΈ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ инфСрСнса
ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ single-agent ΠΊ multi-agentРиск β€œΠΏΠ΅Ρ€Π΅ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚ΡŒβ€ систСму Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

πŸ”— Бвязи

  • _Agentic Systems Index β€” систСмная ΠΊΠ°Ρ€Ρ‚Π° Π°Π³Π΅Π½Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€.
  • _Frameworks Index β€” ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ ΠΏΠΎ LangChain, CrewAI, AutoGen ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌ.
  • _MCP Index β€” ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ внСшниС инструмСнты ΠΈ сСрвСры ΠΊ Π°Π³Π΅Π½Ρ‚Π°ΠΌ.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ эксплуатации β€” ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.
  • _Glossary Index β€” Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΏΠΎ памяти, контСксту, оркСстрации ΠΈ guardrails.

Π’Π΅Π³ΠΈ: ai agents architecture contextengineering llmops