Бэкенд agentic-воркфлоу для многошаговых AI-агентов
Agentic-воркфлоу нужен надёжный бэкенд: каждый шаг работает как изолированная serverless-функция, вызовы инструментов идут через маршруты шлюза с авторизацией, а долгая или нестабильная работа — в очереди durable-задач: автоматические ретраи с экспоненциальным backoff, dead-letter при повторных сбоях и прогоны, переживающие рестарты. Трассы по шагам показывают вход, выход и число ретраев на каждый ход модели.
Обновлено: 2026-06-28
Кратко
Суть ответа
Бэкенд agentic-воркфлоу для многошаговых AI-агентов. Каждый шаг воркфлоу — serverless-функция: plan, call-tool, validate, notify, approve. Очередь durable-задач связывает шаги с автоматическими ретраями, backoff и dead-letter — упавший шаг обогащения повторяется без перезапуска шага планирования модели.
Когда подходит
- Многошаговые агенты, которые вызывают инструменты, проверяют результаты и уведомляют людей
- Воркфлоу, которым нужны надёжное состояние, ретраи на шаг или шлюзы подтверждения
На что обратить внимание
- Конечные автоматы в памяти теряют прогресс при рестарте. Нет надёжного чекпоинта между вызовами инструментов, нет аудита для compliance и нет паузы на подтверждение человеком без самописной обвязки.
- Прямые вызовы инструментов из оркестратора связывают трафик модели с учётками базы и ключами сторонних API в одном рантайме — сложнее ограничивать права и ротировать секреты.
Нагрузка и где ломается
Почему agentic-воркфлоу нужен отдельный бэкенд
Один цикл LLM с вызовами инструментов внутри работает в демо. В проде agentic-воркфлоу длятся минуты или часы: исследовать, действовать, проверить, эскалировать, уведомить. Когда падает четвёртый шаг, нужно повторить только его — а не переигрывать весь диалог с начала.
Без настоящего бэкенда логика оркестрации, выполнение инструментов и побочные эффекты делят один процесс. Один плохой деплой или утечка памяти кладёт все воркфлоу агента разом.
Компромиссы
Где ломается лёгкая оркестрация агентов
Конечные автоматы в памяти теряют прогресс при рестарте. Нет надёжного чекпоинта между вызовами инструментов, нет аудита для compliance и нет паузы на подтверждение человеком без самописной обвязки.
Прямые вызовы инструментов из оркестратора связывают трафик модели с учётками базы и ключами сторонних API в одном рантайме — сложнее ограничивать права и ротировать секреты.
Как помогает Inquir
Serverless-функции и пайплайны как agentic-слой
Каждый шаг воркфлоу — serverless-функция: plan, call-tool, validate, notify, approve. Очередь durable-задач связывает шаги с автоматическими ретраями, backoff и dead-letter — упавший шаг обогащения повторяется без перезапуска шага планирования модели.
Вызовы инструментов идут через маршруты шлюза с авторизацией и секретами на инструмент. Оркестратор видит структурированный JSON; платформа берёт на себя изоляцию, тёплые пулы для часто вызываемых инструментов и историю выполнения по шагам.
Что вы получаете
Паттерны бэкенда agentic-воркфлоу
Надёжные многошаговые прогоны
Долгие шаги выполняются в очереди durable-задач: автоматические ретраи с экспоненциальным backoff, dead-letter после повторных сбоев и подбор зависших задач по visibility timeout, так что прогоны переживают рестарт воркера. Упавший шаг повторяется без перезапуска завершённых.
Инструменты как функции за шлюзом
Каждый инструмент — HTTP-эндпоинт с авторизацией, в изолированном контейнере и с ограниченными секретами, а не код внутри оркестратора.
Шлюзы подтверждения человеком
Ставьте пайплайн на паузу перед чувствительными действиями; продолжайте, когда подтверждение придёт по вебхуку или ручному триггеру.
Ветвление и fan-out
Направляйте прогон в разные шаги по выходу инструмента, уровню уверенности или проверкам политик — без вложенных if/else в одном монолите.
Что дальше
Как собрать бэкенд agentic-воркфлоу на Inquir
Разделите оркестрацию и выполнение: модель планирует, функции за шлюзом выполняют инструменты, а очередь durable-задач несёт долгую работу с ретраями.
Определить шаги воркфлоу
Сопоставьте каждое действие агента с функцией или шагом пайплайна: plan, tool-call, validate, notify, approve.
Подключить инструменты к маршрутам шлюза
Задеплойте по функции на инструмент с авторизацией по API-ключу и секретами воркспейса. Возвращайте структурированный JSON, который оркестратор передаёт модели.
Связать шаги в пайплайн
Используйте пайплайны для надёжных прогонов: ретраи на шаг, ветвление по выходу инструмента, ожидание подтверждения человеком и полная история выполнения.
Пример кода
Многошаговый воркфлоу агента как пайплайн
Многошаговый воркфлоу агента — это пайплайн: каждый шаг — изолированная функция, встроенная в граф, со своей политикой ретраев и своей сохранённой записью прогона. Узел humanGate ставит прогон на паузу до подтверждения и возобновляет его, когда кто-то примет решение; нестабильные шаги повторяются с backoff без перезапуска завершённых, а весь прогон — входы, выходы, число ретраев и текущее положение — доступен в истории выполнения.
{ "schemaVersion": 1, "nodes": [ { "id": "in", "kind": "httpTrigger", "name": "Start research", "config": { "method": "POST" } }, { "id": "search", "kind": "lambda", "name": "Search docs", "config": { "functionId": "search-docs", "inputMapping": { "query": "{{trigger.body.query}}" }, "retryPolicy": { "maxAttempts": 3, "backoffMs": 1000, "strategy": "exponential" } } }, { "id": "draft", "kind": "lambda", "name": "Generate draft", "config": { "functionId": "generate-draft", "inputMapping": { "results": "{{steps.search.output.results}}" } } }, { "id": "approve", "kind": "humanGate", "name": "Approve publish", "config": { "mode": "approve", "promptTemplate": "Publish the draft for {{trigger.body.query}}?" } }, { "id": "publish", "kind": "lambda", "name": "Publish result", "config": { "functionId": "publish-result" } }, { "id": "reject", "kind": "lambda", "name": "Notify rejected", "config": { "functionId": "notify-rejected" } } ], "edges": [ { "id": "e1", "sourceNodeId": "in", "targetNodeId": "search" }, { "id": "e2", "sourceNodeId": "search", "targetNodeId": "draft", "sourceHandle": "success" }, { "id": "e3", "sourceNodeId": "draft", "targetNodeId": "approve", "sourceHandle": "success" }, { "id": "e4", "sourceNodeId": "approve", "targetNodeId": "publish", "sourceHandle": "approve" }, { "id": "e5", "sourceNodeId": "approve", "targetNodeId": "reject", "sourceHandle": "reject" } ] }
export async function handler(event) { // API key auth enforced at the gateway route before this code runs const { query } = JSON.parse(event.body || '{}'); const results = await searchInternalDocs(query); // DB_URL from workspace secrets return { statusCode: 200, body: JSON.stringify({ results, count: results.length }) }; }
# The httpTrigger node exposes the pipeline on a gateway route. # POST a query to start a run; it flows search -> draft -> approval. curl -X POST https://<your-app>/api/research-agent \ -H "X-Api-Key: $INQUIR_API_KEY" \ -d '{"query":"Q3 pricing changes"}' # -> { "runId": "...", "status": "RUNNING" } # The run pauses at the humanGate until someone approves or rejects; # each step's input, output, and retry count is in the execution history.
Когда подходит
Кому подходит бэкенд agentic-воркфлоу
Когда это уместно
- Многошаговые агенты, которые вызывают инструменты, проверяют результаты и уведомляют людей
- Воркфлоу, которым нужны надёжное состояние, ретраи на шаг или шлюзы подтверждения
Когда лучше выбрать другое
- Одноходовый чат с одним вызовом инструмента и без побочных эффектов
Частые вопросы
Частые вопросы
Чем это отличается от бэкенда для вызова инструментов?
Вызов инструментов — это отдельные HTTP-эндпоинты на инструмент. Бэкенд agentic-воркфлоу добавляет многошаговый слой: цепочки шагов в очереди durable-задач, ветвление, ожидание подтверждения человеком, автоматические ретраи и историю выполнения по шагам через все ходы модели.
Можно ли использовать LangGraph или CrewAI с Inquir?
Да. Оставьте свой фреймворк оркестрации; направьте вызовы инструментов на маршруты шлюза Inquir, а долгие или повторяемые шаги вынесите в очередь durable-задач.
Что происходит, когда шаг пайплайна падает?
Шаг повторяется по политике пайплайна. Завершённые шаги не перезапускаются. История выполнения показывает, какой шаг упал, сколько было ретраев и текст ошибки.