Комментарии 10
Разбор получился точный — особенно OODA loop как скелет агента. Кстати, ответ на вопрос "зачем такие жёсткие лимиты на tool calls?" не в экономии. LLM практически не обучен на примерах, где правильный ответ — "сдаюсь". Поэтому без потолка агент входит в режим "ещё одна попытка, и точно получится" — и сидит там до тепловой смерти контекста. Бюджет вызовов — это не про деньги. Это поводок.
Спасибо, точное замечание!
Метафора "поводок" – лучше, чем "потолок". Действительно, у LLM нет встроенного механизма остановки: в тренировочных данных "правильный ответ" почти всегда существует, и модель училась его искать, а не отказываться. Бюджет вызовов работает как внешняя обратная связь – то, чего у модели в архитектуре нет.
Anthropic, кстати, в research_subagent.md явно угрожает агенту терминацией, («If you exceed this limit, the subagent will be terminated.») и это работает именно по той же причине: модель должна знать, что её отключат, иначе сама не остановится, но я не одушевляю ). То есть бюджет – это даже не один поводок, а двухуровневая защита: soft budget (рекомендация) + hard cap (явная угроза).
Спасибо за дополнение, забрал в свою заметку для следующей статьи.
К 13 блокам напрашивается ещё один — security boundary. Когда я делал red-team такой архитектуры, самым болезненным оказался не сам промпт, а prompt injection через память и tool output: роль агента переписывается изнутри, и никакой prompt engineering это не ловит. Разделение полномочий между ролями обязано быть на уровне runtime, а не строкой “ты — research subagent”.
Точное наблюдение, оно открывает отдельную целую тему! Согласен, разделение ролей через системный промпт работает на уровне «договорённости», но не на уровне принудительной изоляции. Как только в контекст попадает враждебный tool output или запись из памяти, агент читает её как продолжение своих инструкций – и роль переопределяется снизу вверх.
В статье я разбирал анатомию тела одного агента – то есть что положить внутрь. Security boundary – это уже про архитектуру вокруг агента: песочницы для инструментов, валидация ввода до того, как агент его увидит, разделение прав на уровне runtime. Это смежная дисциплина, которая требует отдельной статьи, и я её обязательно сделаю.
Anthropic, кстати, в последнее время явно идёт именно туда – Computer Use sandboxing, Code Execution with MCP с изоляцией, harness engineering как отдельный паттерн. В пятой статье серии у меня запланирован разбор фронтир-паттернов, security там само-собой будет. Заберу твоё наблюдение про prompt injection через память – это очень крутой пример, который я в свой материал не закладывал.
Спасибо за red-team-перспективу, такой опыт в комментариях ценнее, чем сам разбор. Запишу в полевые заметки к серии.
Через месяц, 15 июня 2026, Anthropic выводит из эксплуатации модели claude-sonnet-4-0 и claude-opus-4-0 — те самые, на которых строился публичный workbench из того доклада.
Хм...
+90.2% у orchestrator-worker это интересная метрика, но она не говорит, в каком слое происходит сбой: декомпозиция у оркестратора, выполнение у воркера или синтез.
Из опыта тестирования AI-эндпоинтов: агент может выдавать правильный финальный ответ по неправильной траектории - spurious correctness. End-to-end метрика это не поймает.
Нужен отдельный coverage для каждого структурного блока.
Интересно!
Spurious correctness и block coverage – это уже территория профессионального AI-тестирования, в которую я не уходил намеренно. Я разбирал анатомию промпта, не методологию верификации. Это смежная дисциплина, и спасибо, что подсветил её отдельно — буду погружатся. )
Если у тебя есть публичные материалы или практики по block coverage для агентных систем — поделись, мне бы было интересно почитать.
Публичных материалов практически нет, много концептуального про non-deterministic testing, но очень мало конкретных практик с кодом.
Из своего: разделила AI-тесты на два условных слоя: contractLayer (domain invariants + hallucination detection, работает с моком без реального Claude) и qualityLayer (metamorphic consistency + statistical assertions, только с реальной моделью). Технически 2 describe с разными условиями запуска. Это для одного AI-эндпоинта. Для полной оркестратор-воркер цепочки coverage будет другим. Складывалось по частям, не как система сразу. Этот gap между “концепция” и “вот рабочий код” - то, что хочу со временем закрыть в своём контенте.
Спасибо, за ответ, очень ценно. Твоя тема прям на фронтире!
Особенно интересно, как ты технически разделила тесты – contractLayer с моком, qualityLayer с реальной моделью. Это аккуратная декомпозиция: разные затраты, разная частота запуска, разные цели.
Несколько вещей резонируют с тем, что я разбирал. Hallucination detection в contractLayer – у Anthropic в research_subagent.md есть блок про оценку источников: они руками прописывают агенту красные флаги типа «marketing language, nameless sources, news aggregators citing other news». По сути это те же domain invariants, только записанные не в виде runtime-тестов, а в виде инструкции внутри промпта. Получается два уровня защиты: то, что модель должна отлавливать сама, и то, что проверяется внешним кодом после неё.
Про gap между концепцией и рабочим кодом – да, и у меня этот разрыв тоже есть. Я разбираю что положить в тело агента, ты разбираешь как валидировать поведение. Это смежные грани одной задачи, и из обоих углов пока больше теории, чем кода. Если соберёшься писать про contractLayer/qualityLayer с примерами кода обязательно напиши, прочитаю первым.

Анатомия production AI агента: разбор двух открытых промптов Anthropic