{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://inquir.org/#organization","name":"Inquir","url":"https://inquir.org","logo":{"@type":"ImageObject","url":"https://inquir.org/favicon.png","width":256,"height":256}},{"@type":"WebSite","@id":"https://inquir.org/#website","name":"Inquir Compute","url":"https://inquir.org","inLanguage":["en","ru"],"publisher":{"@id":"https://inquir.org/#organization"}},{"@type":"WebPage","@id":"https://inquir.org/ru/use-cases/ai-agent-backend#webpage","url":"https://inquir.org/ru/use-cases/ai-agent-backend","name":"Агенты в продакшене на функциях и маршрутах Inquir","headline":"Агенты в продакшене на функциях и маршрутах Inquir","description":"Гайд по бэкенду AI-агента: функция на инструмент, API key на шлюзе, секреты вне промпта, async для долгих шагов и прогрев для частых вызовов.","inLanguage":"ru-RU","isPartOf":{"@id":"https://inquir.org/#website"},"breadcrumb":{"@id":"https://inquir.org/ru/use-cases/ai-agent-backend#breadcrumb"},"author":{"@id":"https://inquir.org/#organization"},"datePublished":"2025-11-01T00:00:00.000Z","dateModified":"2026-06-23T00:00:00.000Z","citation":{"@type":"CreativeWork","url":"https://inquir.org/docs"}},{"@type":"BreadcrumbList","@id":"https://inquir.org/ru/use-cases/ai-agent-backend#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Главная","item":"https://inquir.org/ru/"},{"@type":"ListItem","position":2,"name":"Сценарии","item":"https://inquir.org/ru/use-cases"},{"@type":"ListItem","position":3,"name":"Бэкенд AI-агента","item":"https://inquir.org/ru/use-cases/ai-agent-backend"}]},{"@type":"TechArticle","@id":"https://inquir.org/ru/use-cases/ai-agent-backend#article","headline":"Агенты в продакшене на функциях и маршрутах Inquir","description":"Гайд по бэкенду AI-агента: функция на инструмент, API key на шлюзе, секреты вне промпта, async для долгих шагов и прогрев для частых вызовов.","image":"https://inquir.org/opengraph-image.png","inLanguage":"ru-RU","author":{"@id":"https://inquir.org/#organization"},"publisher":{"@id":"https://inquir.org/#organization"},"datePublished":"2025-11-01T00:00:00.000Z","dateModified":"2026-06-23T00:00:00.000Z","isPartOf":{"@id":"https://inquir.org/ru/use-cases/ai-agent-backend#webpage"}},{"@type":"FAQPage","@id":"https://inquir.org/ru/use-cases/ai-agent-backend#faq","url":"https://inquir.org/ru/use-cases/ai-agent-backend","isPartOf":{"@id":"https://inquir.org/ru/use-cases/ai-agent-backend#webpage"},"mainEntity":[{"@type":"Question","name":"Инструменты должны быть отдельными HTTP-функциями?","acceptedAnswer":{"@type":"Answer","text":"В продакшене обычно да — проще изоляция, меньше риск при публикации новой версии и понятнее логи, чем у монолита."}},{"@type":"Question","name":"Где хранить секреты?","acceptedAnswer":{"@type":"Answer","text":"В секретах рабочего пространства с подстановкой в окружение — ключи не в промптах и не в клиентском бандле."}},{"@type":"Question","name":"Streaming / SSE для пользователя?","acceptedAnswer":{"@type":"Answer","text":"Stream (SSE) к клиенту — через API-Gateway; связь orchestrator → tool чаще остаётся обычным JSON request/response — так проще retries и idempotency."}},{"@type":"Question","name":"Как сделать вызовы инструментов идемпотентными при повторных попытках модели?","acceptedAnswer":{"@type":"Answer","text":"Ключуйте записи стабильными ID из payload инструмента (ID клиента, заказа, внешней записи). Возвращайте ту же JSON-схему при повторе, чтобы оркестратор мог считать дубликат безопасным no-op."}}]}]}