Бэкенд agentic-воркфлоу для многошаговых AI-агентов
Agentic-воркфлоу требуют больше, чем эндпоинты инструментов: durable-оркестрация между планированием, вызовами инструментов, валидацией, human-in-the-loop и очисткой — с повторами на шаг, трассировками на ход модели и секретами вне промпта.
Обновлено: 2026-06-23
Кратко
Суть ответа
Бэкенд agentic-воркфлоу для многошаговых AI-агентов. Каждый шаг воркфлоу — serverless-функция: plan, call-tool, validate, notify, approve. Пайплайны связывают шаги с повторами, ветвлением и durable-состоянием — упавший шаг обогащения повторяется без перезапуска планирования модели.
Когда подходит и когда нет
- Многошаговые агенты с инструментами, валидацией и уведомлением людей
- Воркфлоу с 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-состоянием — упавший шаг обогащения повторяется без перезапуска планирования модели.
Вызовы инструментов идут через authenticated-маршруты шлюза с секретами на функцию. Оркестратор видит структурированный JSON; платформа даёт изоляцию, тёплые пулы и историю выполнения по шагам.
Что вы получаете на платформе
Паттерны бэкенда agentic-воркфлоу
Durable-многошаговые прогоны
Шаги пайплайна сохраняют состояние между ходами модели. Продолжение после сбоя без повтора завершённых шагов.
Инструменты как функции шлюза
Каждый инструмент — 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
Оркестратор вызывает инструменты шлюза синхронно для быстрых шагов; долгая или retry-heavy работа — в пайплайне.
exports.orchestrator = async function* (ctx) { const { query, runId } = ctx.getInput(); // Step 1: search — retries 3x with exponential backoff on failure const searchResults = yield ctx.callActivityWithRetry( 'search-docs', { maxNumberOfAttempts: 3, backoffCoefficient: 2, firstRetryIntervalInMilliseconds: 1000 }, { query } ); // Step 2: generate draft — single attempt, deterministic const draft = yield ctx.callActivity('generate-draft', { query, searchResults }); // Step 3: human approval gate — wait up to 24h for external event const approved = yield ctx.waitForExternalEvent('Approval', 86_400_000); if (!approved) return { runId, status: 'rejected', draft }; // Step 4: durable timer — wait 5 min before publishing (rate-limit guard) yield ctx.createTimer(new Date(Date.now() + 5 * 60 * 1000)); // Step 5: publish result const published = yield ctx.callActivity('publish-result', { runId, draft }); return { runId, status: 'published', url: published.url }; };
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 }) }; }
export async function handler(event) { const { query, runId } = JSON.parse(event.body || '{}'); if (!query) return { statusCode: 400, body: JSON.stringify({ error: 'query required' }) }; // Start the durable orchestrator — returns HTTP 202 with status/event/terminate URIs const { instanceId } = await global.durable.startNew('research-agent', undefined, { query, runId }); return { statusCode: 202, body: JSON.stringify({ instanceId, status: 'started' }) }; }
Когда подходит и когда нет
Когда уместен бэкенд agentic-воркфлоу
Когда это уместно
- Многошаговые агенты с инструментами, валидацией и уведомлением людей
- Воркфлоу с durable-состоянием, повторами на шаг или approval-gates
Когда лучше не трогать
- Одноходовый чат с одним вызовом инструмента без побочных эффектов
Вопросы и ответы
Вопросы и ответы
Чем отличается от бэкенда tool calling?
Tool calling — отдельные HTTP-эндпоинты на инструмент. Agentic-воркфлоу добавляет durable-оркестрацию: многошаговые пайплайны, ветвление, human approval и чекпоинты между ходами модели.
Можно ли использовать LangGraph или CrewAI?
Да. Оставьте свой фреймворк оркестрации; направляйте вызовы инструментов на маршруты Inquir, durable-шаги — в пайплайны через global.durable.startNew().
Что при падении шага пайплайна?
Шаг повторяется по политике пайплайна. Завершённые шаги не перезапускаются. В истории видно, какой шаг упал, сколько было повторов и текст ошибки.