System Design Space
Граф знанийНастройки

Обновлено: 7 апреля 2026 г. в 06:22

Агентные рабочие цепочки и архитектура вызова инструментов

средний

Как проектировать агентные системы: реестр инструментов, циклы планирования и исполнения, состояние, согласования и безопасную обработку сбоев.

Как только агент получает право вызывать инструменты, архитектура перестает быть просто цепочкой запросов и превращается в систему с разрешениями, состоянием и бюджетами.

Глава показывает, как проектировать цикл планирования, реестр инструментов, этапы согласования, повторы и условия остановки так, чтобы агент приносил пользу, а не создавал неконтролируемую операционную сложность.

На интервью она помогает обсуждать не абстрактного агента, а конкретный рабочий контур: кто что может вызвать, как проверяются аргументы и как система безопасно деградирует при ошибках.

Практическая польза главы

Архитектура цикла

Переводите понимание агентного цикла и вызова инструментов в архитектурные решения о правах, состоянии, бюджетах и путях безопасного отказа.

Контроль автономии

Оценивайте систему через надежность вызова инструментов, управляемость автономии, задержки, стоимость и операционные риски.

Материал для интервью

Структурируйте ответ вокруг цикла агента, реестра инструментов, согласований и условий остановки, показывая, где возникают ограничения и как вы ими управляете.

Компромиссы системы

Явно фиксируйте компромиссы в агентном цикле и вызове инструментов: скорость экспериментов, качество, объяснимость, бюджет ресурсов и сложность поддержки.

Как только агент получает право на , чтение внешних данных и влияние на состояние системы, перед нами появляется уже не “умный запрос”, а маленькая среда выполнения со своими правами, бюджетами, состоянием и путями безопасного отказа.

Полезно обсуждать такую систему через границы возможностей, семантику восстановления, согласования и : именно они определяют, останется ли агент управляемым под нагрузкой, при сбоях и в контуре записи.

Границы возможностей

Главный вопрос не только в том, какую модель выбрать, а в том, какие действия агент вообще может видеть, планировать и вызывать.

Семантика восстановления

Нужно заранее определить, как рабочая цепочка продолжится после тайм-аута, ошибки инструмента или частично выполненного шага.

Ручной перехват

Контур записи, дорогие действия и внешние побочные эффекты должны иметь понятный путь согласования и явный переход к человеку.

Ключевые слои среды выполнения

Удобнее всего разбирать агентную систему по слоям: кто принимает решение о следующем шаге, кто проверяет доступ, кто исполняет действие и кто отвечает за восстановление после ошибки. Обычно разговор начинается с и заканчивается , которая не дает модели напрямую добраться до реального побочного эффекта.

Планировщик и оркестратор

В центре цикла стоит оркестратор: он получает запрос, текущее состояние выполнения и бюджет, а затем выбирает только следующий шаг вместо попытки предсказать всю цепочку заранее.

Ключевой контракт: На входе: задача, история, набор доступных действий и контекст риска. На выходе: один следующий шаг с кодом причины и ограничением по бюджету.

На что смотреть: Длина цикла, скорость расходования бюджета, среднее число перепланирований и доля сценариев, дошедших до условия остановки без ручного вмешательства.

Реестр инструментов и контракты

Реестр инструментов задает для модели ограниченную и типизированную поверхность: названия действий, схемы входа и выхода, область доступа и класс риска.

Ключевой контракт: У каждого инструмента должны быть схема аргументов, контракт ответа, список разрешенных действий и явное описание побочного эффекта.

На что смотреть: Нарушения схемы, отклоненные вызовы инструментов, устаревшие версии контрактов и доля вызовов, не давших полезного результата.

Исполнение и изолированная среда

Слой исполнения превращает решение оркестратора в конкретный вызов команды, API или внутреннего сервиса, не выпуская модель в неограниченную среду выполнения.

Ключевой контракт: Каждый вызов проходит через изолированную среду с тайм-аутом, политикой повторов, ожиданием идемпотентности и журналом фактических побочных эффектов.

На что смотреть: Задержка инструментов, доля тайм-аутов, повторные вызовы одного и того же шага, успешность побочных эффектов и доля ручных откатов после выполнения.

Политики и согласования

Этот слой отделяет сценарии только для чтения от действий, которые стоят денег, меняют данные или запускают внешнюю операцию.

Ключевой контракт: Для каждого действия определяются уровень риска, требование согласования, путь отказа и причина безопасного запрета, понятная и пользователю, и оператору.

На что смотреть: Доля согласованных действий, число отказов, ложные блокировки, время ожидания ручной проверки и количество контуров записи, завершенных без нужного согласования.

Состояние и память

Краткоживущий контекст, состояние контрольной точки и долговременную память нельзя смешивать: у них разный жизненный цикл и разные задачи.

Ключевой контракт: Краткоживущий контекст хранит данные текущего запроса, состояние выполнения хранит прогресс шага, а долговременная память хранит факты и результаты прошлых сценариев.

На что смотреть: Успешность возобновления, обращения к устаревшей памяти, размер контрольной точки и расхождение между текущим состоянием мира и сохраненной памятью.

Наблюдаемость и оценивание

Агентную среду выполнения нужно наблюдать как распределенную систему: шаги модели, вызовы инструментов, согласования, ошибки и итог решения должны собираться в единую трассу.

Ключевой контракт: Один идентификатор трассы связывает запрос, вызовы инструментов, согласования, резервный сценарий и итог, а контур оценивания на исторических прогонах проверяет регрессии перед выпуском новых правил.

На что смотреть: Завершенность задач, доля откатов, доля ответов с опорой на источники, регрессии на исторических прогонах и цена успешного сценария на единицу пользы, а не на один вызов модели.

Референсная архитектура агентной среды выполнения

Intent и задачазапрос, контекст, budget tierPlanner / Orchestratorследующий шаг, бюджет, stop rulesTool Registrycapabilities, schema,allowlistPolicy / Approvalrisk gates, human review, denypathExecutor / Sandboxtool call, timeout, retry, sideeffectState / Memoryrun state, checkpoints, durablememoryObservability / Evaltrace, tool spans, replay,regressionsintent + budgetразрешённые toolsapproval / denyvalidated actioncheckpoint / restoretrace + eval

Оркестратор не должен быть всем сразу

Он выбирает следующий шаг и бюджет, а фактическое исполнение и side effects живут за отдельной границей.

Реестр и policy layer режут surface area

Агент видит только типизированные capabilities, а опасные действия проходят через approval path.

State и traces - отдельные системы

Без checkpoint-состояния и audit trail агентный цикл плохо восстанавливается и почти не поддается разбору.

Путь выполнения: от запроса к безопасному действию

Ниже полезно смотреть не на всю цепочку сразу, а на последовательность шагов с проверками, бюджетами и , которые позволяют безопасно продолжить сценарий после сбоя или паузы.

1. Классификация запроса и выбор бюджета

~20-80 ms

На старте система решает, какой набор действий вообще доступен, какой бюджет допустим и какие правила остановки включаются для этого сценария.

Контрольная точка: Определить режим: только чтение, изменения после согласования или ручной разбор.

2. Восстановление контекста и состояния выполнения

~20-120 ms

Если сценарий продолжается после сбоя или паузы, среда выполнения должна восстановить только релевантное состояние и не смешать его с устаревшей памятью.

Контрольная точка: Поднять контекст сессии, контрольную точку и нужные факты из памяти.

3. Планирование одного следующего шага

~100-500 ms

Хороший оркестратор формулирует следующую проверяемую единицу действия: какой инструмент нужен, какие входные данные ожидаются и как понять, что шаг завершен успешно.

Контрольная точка: Выбрать следующее действие, а не пытаться описать всю цепочку целиком.

4. Проверка аргументов, прав доступа и кода риска

~10-70 ms

Перед реальным вызовом инструмента проверяются схема аргументов, допустимость доступа, стоимость действия и необходимость ручного согласования.

Контрольная точка: Остановить опасный вызов до запуска, а не после него.

5. Исполнение в изолированной среде и разбор результата

~50 ms - seconds

После вызова система анализирует ответ инструмента, качество результата, наличие побочного эффекта и решает: продолжать, перепланировать или переключиться на резервный сценарий.

Контрольная точка: Зафиксировать результат, побочные эффекты и ошибки с кодом причины.

6. Сохранение трассы, остановка или повтор цикла

~10-50 ms

Даже успешный шаг должен записать трассу, обновить контрольную точку и пройти через условие остановки, чтобы цикл не продолжался по инерции.

Контрольная точка: Сохранить контрольную точку и закончить сценарий детерминированно.

Цикл исполнения и точки принятия решений

Plan Stepцель, budget,tool classSelect Toolcapability, nextactionValidateArgsschema, ACL,risk codeExecutesandbox,timeout,idempotencyInspectResultoutput quality,side effects,logsDecisionretry, approve,stopRetry / Replanисправить аргументы,сменить tool илисократить scopeApproval Pathчеловек подтверждаетwrite path или внешнийside effectStop / Fallbackбюджет исчерпан, рисквысокий или confidenceнедостаточенruntime loopcontrolled outcomesloop back

Validation должна быть отдельным шагом

Проверка схемы, ACL и risk code до исполнения уменьшает число дорогих и небезопасных tool calls.

Decision node нужен после каждого результата

Агент не должен автоматически считать любой output достаточным основанием для следующего side effect.

Повтор - это не blind retry

Хороший retry меняет scope, аргументы или инструмент, а не просто повторяет тот же вызов.

Примеры агентных рабочих цепочек

Два типовых сценария ниже показывают разницу между контуром с приоритетом и агентом, который может готовить изменения и переходить к записи только после отдельного согласования.

Ассистент с опорой на извлечение контекста

Сценарий для корпоративного ассистента или внутреннего помощника по знаниям: главная задача здесь - собрать ответ с опорой на источники и справочные инструменты, не выполняя действия на запись по умолчанию.

1. Классификация запроса и выбор набора действий только для чтения2. Извлечение знаний с проверкой прав доступа, фильтрами арендатора и контролем свежести данных3. Справочные инструменты: API, статус сервисов, инструкции и тикеты4. Сборка ответа с цитатами, ссылками на источники и кодами причин, если ответ неполный5. Согласование только для действий на запись: создание тикета, изменение состояния или запуск отдельной цепочки
Режим только для чтения должен быть вариантом по умолчанию: ассистент отвечает и объясняет, но не меняет мир без отдельного шага.
Извлечение контекста и справочные инструменты обязаны учитывать границы арендатора и оставлять понятную ссылку на источник.
Если источники конфликтуют или уверенность низкая, безопаснее отдать частичный ответ, чем придумывать завершение цепочки.

Агент с правом на изменения

Сценарий для агента, работающего с кодом, внутренней автоматизации или управляемого устранения проблем: агент может подготовить изменение, но путь до побочного эффекта отделен от планирования и защищен этапами согласования.

1. Разбить задачу на минимальный следующий шаг на запись и определить уровень риска2. Выполнить пробный прогон в безопасной копии среды или в ограниченной области3. Показать изменения, краткое описание последствий и получить согласование на реальное действие4. Применить изменение, вызвать внешний API или обновить состояние системы5. Проверить ожидания после изменения: тесты, проверки состояния и ограничения согласованности6. При неудаче откатить, передать человеку или вернуться в режим только для чтения
Согласование должно происходить после пробного прогона и до реального побочного эффекта, иначе человек подтверждает слишком абстрактный план.
Контур записи должен оставлять понятный журнал: кто одобрил действие, что изменилось, какие проверки прошли и что именно было откатано.
Путь отката проектируется заранее: если его нет, автономность агента оказывается односторонней.

Инструментальные роли и примеры решений

Ниже не “обязательный стек”, а карта типовых слоев: сначала зачем нужен слой, затем какие инструменты и подходы там обычно встречаются и какой компромисс они приносят.

СлойЗачем нуженПримерыКогда подходитГлавный компромисс
ОркестрацияКоординирует жизненный цикл шага, бюджеты, повторы, паузу/возобновление и условия остановки.конечный автомат, LangGraph, TemporalПодходит, когда рабочая цепочка многошаговая, восстанавливаемая и должна жить дольше одного вызова модели.Чем мощнее система оркестрации, тем выше цена схем, миграций и операционного владения самой средой выполнения.
Контракты и реестр инструментовОписывает доступные действия как типизированные операции со схемой, областью доступа и метаданными риска.Model Context Protocol, OpenAPI/JSON Schema, внутренний реестр возможностейПодходит, когда число инструментов быстро растет и их нужно показывать модели как ограниченный и объяснимый набор возможностей.Чем формальнее контракт, тем меньше хаоса, но тем дороже быстрое развитие разовых инструментов.
Изолированное исполнениеИзолирует фактический запуск команд, кода или внешних API от цикла модели.изолированный исполнитель, Docker, Firecracker microVMНужно всегда, когда агент умеет запускать код, команды оболочки, операции с файловой системой или дорогие интеграции.Сильная изоляция уменьшает радиус поражения, но добавляет задержки, стоимость инфраструктуры и сложность отладки.
Состояние и памятьХранит контекст сессии, состояние контрольной точки, долговременную память и курсор восстановления.Redis, Postgres, хранилище истории цепочки, векторная база данныхНужно, когда сценарий приходится восстанавливать после паузы, растягивать на несколько шагов или переиспользовать факты.Больший объем памяти улучшает непрерывность сценария, но повышает риск устаревшего контекста, несогласованного извлечения и долга по управлению данными.
Наблюдаемость и оцениваниеСвязывает вызовы модели, шаги инструментов, согласования и результаты в единую трассу и контур проверки регрессий.OpenTelemetry, Langfuse, Phoenix, собственный контур исторического прогонаПодходит для рабочей среды выполнения, где важно не только видеть успешность, но и разбирать конкретные падения.Чем детальнее трассировка, тем выше стоимость хранения, требования к редактированию данных и нагрузка на аналитический контур.
Политики и согласованияПревращает решения о риске в отдельный архитектурный слой, а не в текст внутри запроса к модели.Open Policy Agent, Cedar, очередь согласований, сервис ручной проверкиНужно там, где действия на запись, деньги, персональные данные, границы арендатора или рабочее состояние системы нельзя полностью доверять модели.Сильные защитные ограничения уменьшают риск, но могут замедлять пользовательский сценарий и снижать ощущение автономии, если правила сделаны слишком грубо.

Состояние, управляющий контур и резервный сценарий

Именно здесь проявляются различия между краткоживущим контекстом, долговременной памятью и : без такого разделения система быстро накапливает устаревшие данные и плохо переживает сбои.

Transient Contextтекущий prompt, retrievedcontext, session varsAgent Runtimeplanner + executor + decisionloopRun Statecheckpoint, step history,recovery cursorLong-Term Memorydurable facts, embeddings, prioroutcomesPolicy GatesACL, approval rules, cost andrisk limitsAudit Logtool traces, approvals, outputs,incident evidenceSafe Fallbackhuman takeover, deterministic path,rollbackrequest datacheckpoint / resumememory readallow / denytrace writeescalate / rollback

Transient context - не durable state

Контекст текущего запроса можно отбросить, а run state нужен для resume после сбоя и повторяемого расследования.

Policy gates проверяют право на действие

Guardrails полезны не как текст в prompt, а как отдельная проверка с кодом решения и понятной причиной отказа.

Fallback должен быть предсказуемым

При высоком риске система обязана завершиться в deterministic path: human handoff, rollback или read-only answer.

Сбои, пути согласования и безопасная деградация

Хорошая агентная архитектура оценивается не количеством автономных шагов, а качеством контролируемой деградации: умеет ли система остановиться, объяснить причину, передать контекст человеку и завершить сценарий без скрытого побочного эффекта. Отдельно полезно проверять это на , а не только на единичных демо-сценариях.

Нарушение схемы и невалидный ответ инструмента

Симптом: Модель выбирает правильный класс действия, но ошибается в аргументах или получает частично сломанный ответ.

Архитектурный ответ: Сделайте проверку и нормализацию отдельным шагом, а перепланирование - обязательным после невалидного ответа вместо слепого повтора.

Дрейф цикла и выгорание бюджета

Симптом: Агент много раз вызывает похожие инструменты, но не приближается к завершению задачи.

Архитектурный ответ: Ограничьте число шагов, введите сигналы о слишком быстром расходовании бюджета и правила остановки, которые переводят сценарий в ручной разбор или детерминированный резервный сценарий.

Устаревшая память и неверное восстановление состояния

Симптом: Сценарий продолжает работу из устаревшей контрольной точки или использует факты, которые уже не соответствуют текущему миру.

Архитектурный ответ: Версионируйте контрольные точки и записи памяти, фиксируйте свежесть источника и требуйте повторного поднятия контекста перед рискованным действием.

Опасный побочный эффект до согласования

Симптом: Действие на запись запускается до того, как человек увидел краткое описание последствий, список изменений или стоимость ошибки.

Архитектурный ответ: Разведите пробный прогон и реальное исполнение архитектурно: согласование должно открывать отдельную возможность записи, а не подтверждать уже запущенный вызов.

Отказ нижележащего инструмента или провайдера

Симптом: Нужный инструмент недоступен, зависает или возвращает непредсказуемый результат на критическом шаге.

Архитектурный ответ: Подготовьте резервный путь заранее: альтернативный инструмент, ответ только для чтения, отложенное выполнение или эскалация на оператора.

Антипаттерны

Давать модели широкий список инструментов и надеяться, что удачный текст запроса сам ограничит поведение.
Хранить запрос, состояние выполнения, журналы инструментов и долговременную память в одном контекстном блоке без жизненного цикла и явного владельца.
Считать интерфейс согласования достаточной защитой, если побочный эффект уже подготовлен или частично выполнен до подтверждения.
Измерять качество только количеством завершенных запусков, не анализируя откаты, отказы, регрессии на исторических прогонах и скрытую стоимость.

Практические рекомендации

Проектируйте агента как среду выполнения с явными границами возможностей, а не как цепочку эвристик вокруг запроса.
Держите режим только для чтения вариантом по умолчанию, а действия на запись открывайте только через отдельные уровни риска и пути согласования.
Логируйте не только итоговый результат, но и каждую точку решения: почему был выбран инструмент, почему шаг отклонен и почему цикл остановился.
Собирайте наборы для исторического прогона и корзины сбоев по типам, чтобы улучшать не только запросы, но и контракты, политики, семантику восстановления и резервные сценарии.

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

  • Model Context Protocol - Практический стандарт для описания инструментов и ресурсов как типизированного контракта для среды выполнения модели.
  • Temporal Workflows - Референс по устойчивым долгоживущим рабочим цепочкам, историческому прогону и семантике восстановления.
  • Open Policy Agent - Подход policy-as-code для решений о доступных действиях, логики согласования и отказов с понятными кодами причин.
  • OpenTelemetry - База для трасс и метрик по вызовам модели, шагам инструментов, согласованиям и итоговому результату.
  • OWASP GenAI Security Project - Материалы по внедрению инструкций в запрос, злоупотреблению инструментами и моделированию угроз для LLM- и агентных систем.

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки