Бэкенд agentic-воркфлоу для многошаговых AI-агентов
Agentic-воркфлоу нужен durable-бэкенд: каждый шаг — изолированная serverless-функция, вызовы инструментов идут через authenticated-маршруты шлюза, а долгая или нестабильная работа — на durable-очереди фоновых задач: автоповторы с backoff, dead-letter и прогоны, переживающие рестарт. Трассировки по шагам показывают вход, выход и число повторов на каждый ход модели.
Обновлено: 2026-06-28
Кратко
Суть ответа
Бэкенд agentic-воркфлоу для многошаговых AI-агентов. Каждый шаг воркфлоу — serverless-функция: plan, call-tool, validate, notify, approve. Durable-очередь фоновых задач связывает шаги с автоповторами, backoff и dead-letter — упавший шаг обогащения повторяется без перезапуска планирования модели.
Когда подходит и когда нет
- Многошаговые агенты с инструментами, валидацией и уведомлением людей
- Воркфлоу с durable-состоянием, повторами на шаг или approval-gates
На что обратить внимание
- In-memory state machine теряет прогресс при рестарте. Нет durable-чекпоинта между вызовами инструментов, аудита для compliance и паузы на human approval без самописной обвязки.
- Прямые вызовы инструментов из оркестратора смешивают трафик модели с ключами БД и внешних API в одной среде — сложнее разграничить доступ и ротировать секреты.
Ситуация: нагрузка и где обычно ломается
Почему agentic-воркфлоу нужен отдельный бэкенд
Один цикл LLM с inline-инструментами работает в демо. В проде agentic-воркфлоу длятся минуты или часы: исследование, действие, проверка, эскалация, уведомление. При падении шага четыре нужен повтор только его — не весь диалог с начала.
Без отдельного бэкенда оркестрация, выполнение инструментов и побочные эффекты делят один процесс. Один плохой деплой или утечка памяти роняет все воркфлоу агента.
Компромиссы
Где ломается лёгкая оркестрация агентов
In-memory state machine теряет прогресс при рестарте. Нет durable-чекпоинта между вызовами инструментов, аудита для compliance и паузы на human approval без самописной обвязки.
Прямые вызовы инструментов из оркестратора смешивают трафик модели с ключами БД и внешних API в одной среде — сложнее разграничить доступ и ротировать секреты.
Как Inquir помогает в этом сценарии
Serverless-функции и пайплайны как agentic-слой
Каждый шаг воркфлоу — serverless-функция: plan, call-tool, validate, notify, approve. Durable-очередь фоновых задач связывает шаги с автоповторами, backoff и dead-letter — упавший шаг обогащения повторяется без перезапуска планирования модели.
Вызовы инструментов идут через authenticated-маршруты шлюза с секретами на функцию. Оркестратор видит структурированный JSON; платформа даёт изоляцию, тёплые пулы и историю выполнения по шагам.
Что вы получаете на платформе
Паттерны бэкенда agentic-воркфлоу
Durable-многошаговые прогоны
Долгие шаги выполняются на durable-очереди фоновых задач: автоповторы с exponential backoff, dead-letter после повторных сбоев и reaping по visibility-timeout, так что прогоны переживают рестарт воркера. Упавший шаг повторяется без перезапуска завершённых.
Инструменты как функции шлюза
Каждый инструмент — authenticated HTTP-эндпоинт в изолированном контейнере с scoped-секретами — не inline-код в оркестраторе.
Human-in-the-loop
Пауза пайплайна перед чувствительными действиями; продолжение по вебхуку или ручному триггеру.
Ветвление и fan-out
Маршрутизация по выходу инструмента, confidence или политике — без вложенных if/else в монолите.
Что сделать дальше, по шагам
Как собрать бэкенд agentic-воркфлоу на Inquir
Разделите оркестрацию и выполнение: модель планирует, функции шлюза выполняют инструменты, а durable-очередь фоновых задач несёт долгую работу с ретраями.
Определить шаги воркфлоу
Сопоставьте каждое действие агента с функцией или шагом пайплайна: plan, tool-call, validate, notify, approve.
Подключить инструменты к шлюзу
Одна функция на инструмент с API-ключом и секретами workspace. Структурированный JSON обратно в оркестратор.
Связать шаги в пайплайн
Durable-прогоны: повторы на шаг, ветвление по выходу инструмента, ожидание approval и полная история.
Пример кода
Agentic-воркфлоу: plan → tool → validate → notify
HTTP-вход ставит прогон агента как durable-задачу в очередь. Каждый шаг — отдельный вызов функции, записанный в очереди; при рестарте воркера reaping по visibility-timeout повторно запускает шаг в работе, а не весь прогон. Упавшие шаги повторяются с backoff и уходят в dead-letter по лимиту.
{ "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-воркфлоу
Когда это уместно
- Многошаговые агенты с инструментами, валидацией и уведомлением людей
- Воркфлоу с durable-состоянием, повторами на шаг или approval-gates
Когда лучше выбрать другое
- Одноходовый чат с одним вызовом инструмента без побочных эффектов
Вопросы и ответы
Вопросы и ответы
Чем отличается от бэкенда tool calling?
Tool calling — отдельные HTTP-эндпоинты на инструмент. Agentic-воркфлоу добавляет многошаговый слой: цепочки шагов на durable-очереди фоновых задач, ветвление, ожидание approval, автоповторы и историю выполнения по шагам.
Можно ли использовать LangGraph или CrewAI?
Да. Оставьте свой фреймворк оркестрации; направляйте вызовы инструментов на маршруты Inquir, а долгие или повторяемые шаги — в durable-очередь фоновых задач.
Что при падении шага пайплайна?
Шаг повторяется по политике пайплайна. Завершённые шаги не перезапускаются. В истории видно, какой шаг упал, сколько было повторов и текст ошибки.