Модуль 4.1 · Урок 4
Production-readiness: что нужно агенту чтобы дойти до прода
Содержание
- Чему вы научитесь
- Зачем отдельный урок
- Категория 1: Observability — лидеры на май 2026
- Категория 2: Tracing — что попадает в spans
- Категория 3: Sandbox — где безопасно запускать LLM-сгенерированный код
- Категория 4: Human-in-the-loop (HITL)
- LangGraph — лидер 2026 для HITL
- OpenAI Agents SDK
- Категория 5: Guardrails — защита от prompt injection и вредных action’ов
- Layered guardrails — best practice 2026
- В OpenAI Agents SDK — встроенные
- Категория 6: Cost monitoring
- Категория 7: Evaluation — как понять что новая версия лучше
- Категория 8: Secrets management
- Категория 9: Reliability — retry, fallback, circuit breaker
- Что обязательно для прода (минимум)
- Best practices от вендоров
- Что запомнить
Чему вы научитесь
- Видеть весь стек инфраструктуры, который отделяет «работает у меня в ноутбуке» от «работает в проде»
- Знать лидеров по 7 категориям: observability, tracing, sandbox, HITL, guardrails, cost monitoring, evaluation
- Понимать, какой минимум обязателен и что можно отложить
- Применять рабочие паттерны 2026: layered guardrails, observability-first, eval/trace loop
Зачем отдельный урок
В модулях 4.1, 4.2 и 4.3 вы научились собирать агентов и оркестрировать их в LangGraph / CrewAI / OpenAI Agents SDK. Это даёт работающего агента — но не production-ready. Между «работает» и «можно показать клиенту» лежит инфраструктурный слой:
- Observability — что агент сделал и почему
- Sandbox — где безопасно выполнить shell или код, который сгенерировала LLM
- Guardrails — фильтрация input/output для защиты
- Human-in-the-loop — точки эскалации к человеку
- Cost monitoring — кто и сколько потратил, и где утечка
- Evaluation — как понять что новая версия лучше
Без этого агента нельзя ставить туда, где есть деньги, ПД или решения с последствиями. В этом уроке — карта инструментов на май 2026, цены, GitHub-stars и какой минимум обязателен.
Категория 1: Observability — лидеры на май 2026
| Инструмент | GitHub stars | Лицензия | Free tier | Pro/Enterprise |
|---|---|---|---|---|
| Langfuse | ~26 900 | MIT | self-host бесплатно, cloud Hobby free | Core $29/мес, Pro $199/мес |
| LangSmith (LangChain) | proprietary | — | Developer (limited) | Plus $39/seat/мес + usage |
| Phoenix (Arize) | ~9 600 | ELv2 | self-host бесплатно | Arize cloud paid |
| Helicone | ~5 600 | Apache 2.0 | 10K req/мес | Pro usage-based |
| Pydantic Logfire | ~4 200 | SDK open | 10M spans/мес | Team $49/мес, Growth $249/мес |
| OpenLIT | ~2 400 | Apache 2.0 | self-host бесплатно | — (full free) |
Кого выбирать:
- Langfuse — лучший баланс OSS + features. Если можете self-host, начинайте с него.
- LangSmith — если вы на LangGraph / LangChain, нативная интеграция бесценна.
- Phoenix — если упор на evals и RAG-метрики, OpenInference-нативный.
- Pydantic Logfire — если стек на Python с Pydantic AI или FastAPI, родной observability.
Все они работают через OpenTelemetry (есть semantic conventions gen_ai.* для агентов) — можете подключить любой OTEL-совместимый бэкенд (Datadog, Honeycomb, Grafana Tempo) если уже там сидите. Подробнее: opentelemetry.io/docs/specs/semconv/gen-ai.
Категория 2: Tracing — что попадает в spans
Минимум для production-агента — каждый запуск даёт полный trace:
- Какой агент обрабатывал
- Какие tools вызывались, с какими аргументами и результатом
- Где произошёл handoff (передача управления)
- Сколько токенов на каждый шаг
- Сколько времени заняла каждая нода
- Что ответила модель и почему
Без trace вы не сможете отлаживать прод. Когда пользователь говорит «агент мне ерунду ответил» — без trace вы не знаете, на каком шаге сломалось.
Стандарт OpenTelemetry для агентов (opentelemetry.io/docs/specs/semconv/gen-ai) — на май 2026 в статусе Development, но уже поддерживается LangChain, OpenAI, Anthropic, Microsoft Application Insights, Honeycomb, Datadog. Если выбираете observability — выбирайте OTEL-совместимое.
Конкретные spans, которые должны быть:
invoke_agent(сgen_ai.agent.name,gen_ai.agent.id)execute_tool(сgen_ai.tool.name, аргументы, результат)gen_ai.conversation.idдля корреляции запросов в одной сессии- token usage (
gen_ai.usage.input_tokens,output_tokens)
Категория 3: Sandbox — где безопасно запускать LLM-сгенерированный код
Когда агент сам пишет shell-команды или Python — нельзя выполнять их на боевом сервере. Нужен sandbox.
| Провайдер | Технология | Cold start | Pricing (на 09.05.2026) |
|---|---|---|---|
| E2B | Firecracker | ~150ms | Hobby free + $100 credits, Pro $150/мес + ~$0.000014/vCPU-sec |
| Modal | gVisor | sub-second | Starter $30 credits/мес, ~$0.000039/core-sec |
| Daytona | Firecracker | ~90ms | $200 free credits, per-sec rates |
| Vercel Sandbox | Firecracker | sub-second | Hobby 5h CPU/мес, active CPU ~$0.128/hr, memory $0.0212/GB-hr |
Когда какой:
- E2B — самый универсальный, AI-focused, отличный SDK
- Modal — если нужны GPU и ML-нагрузки в sandbox
- Daytona — самый быстрый cold start
- Vercel Sandbox — если вы уже на Vercel + Next.js
В OpenAI Agents SDK (с апреля 2026) поддерживаются все четыре через единый Manifest-интерфейс — см. 4.3/01-vendor-sdks, раздел про sandboxed agents.
Минимум для прода: если ваш агент когда-либо выполняет shell-команды, file writes или произвольный код — это должно быть в sandbox. Не на хост-системе.
Категория 4: Human-in-the-loop (HITL)
Точки в pipeline, где агент останавливается и ждёт одобрения человека. Критично для:
- Финансовых транзакций (списать деньги)
- Отправки внешних коммуникаций (email клиенту)
- Удаления данных (DROP TABLE)
- Действий с побочными эффектами в production
LangGraph — лидер 2026 для HITL
interrupt() внутри node + checkpointer (PostgresSaver и др.) + Command(resume=...) для approve/reject/edit.
from langgraph.types import interrupt, Command
def approval_node(state):
decision = interrupt({
"action": "send_email",
"to": state["recipient"],
"body": state["draft"],
})
if decision == "approve":
return {"approved": True}
return {"approved": False}
Durable (через checkpointer состояние сохраняется), time-travel (можно перемотать), multi-process (один граф, разные пользователи).
OpenAI Agents SDK
needs_approval=True на tools (статически или динамически) → interruption в RunResult → inspect/approve/reject через RunState → persist и resume.
Менее зрелый, чем LangGraph, для сложных production HITL — больше boilerplate для persistence. Подробнее: openai.github.io/openai-agents-python/human_in_the_loop.
Категория 5: Guardrails — защита от prompt injection и вредных action’ов
Отдельный слой: до и после LLM-вызова. На май 2026 лидеры:
| Решение | Что делает | Лицензия |
|---|---|---|
| NVIDIA NeMo Guardrails (~6 100 stars) | Colang DSL для input/output/execution rails, jailbreak, tool calling | Apache 2.0 |
| LlamaGuard (Meta, на Hugging Face) | Lightweight classifier models (text + multimodal) | Llama license |
OpenAI Moderation (omni-moderation-latest) | Бесплатный для users API, multimodal, категории harm | proprietary |
| Lasso Security (lasso.security) | Runtime gateway, CBAC, PII, prompt injection | proprietary |
| Lakera Guard (lakera.ai) | Сильный против prompt injection (под 200ms), policy dashboard | proprietary |
Layered guardrails — best practice 2026
[Input Guardrail] → [LLM call] → [Output Guardrail] → [Tool Approval] → [Execution Sandbox]
Один слой не защитит. Промпт-инъекция пройдёт через NeMo, токсичный output не пойман input-guard’ом. Лучшая практика — 3-4 слоя минимум: content filter (LlamaGuard или OpenAI Moderation) + execution rail (NeMo) + pre-action approval (HITL для destructive) + sandbox.
В OpenAI Agents SDK — встроенные
Декораторы @input_guardrail, @output_guardrail, @tool_guardrail. Каждый — это быстрый check (часто отдельная маленькая модель или regex). Возврат GuardrailFunctionOutput(tripwire_triggered=True) останавливает выполнение. Подробно — openai.github.io/openai-agents-python/guardrails.
Категория 6: Cost monitoring
LLM-агенты могут сжигать деньги быстро: один циклящийся LangGraph state может за час потратить $10+ если попадёт в Opus 4.7. Нужен мониторинг и лимиты.
| Инструмент | Подход | Pricing |
|---|---|---|
| Helicone | LLM-proxy, automatic token/cost tracking, caching | Free 10K req/мес, Pro usage-based |
| Portkey | AI gateway, budgets, semantic caching | Production $49/мес |
| Langtrace | OTEL-based, per-span cost | Free 5K spans/мес |
| OpenMeter | Metering/billing engine для usage-based pricing | OSS core free |
Минимум для прода: хотя бы один cost-tracker. Самое дешёвое — Helicone в режиме proxy: меняете URL модели на helicone-proxy, всё автоматически логируется. Пишется один раз, экономит часы дебага «куда ушли деньги».
Категория 7: Evaluation — как понять что новая версия лучше
Без evals вы выкатываете изменение и надеетесь, что оно не сломает прод. С evals — есть числа.
| Инструмент | Что | Stars |
|---|---|---|
| Promptfoo | Red-teaming, injection-tests, CI/CD | ~21 000 |
| DeepEval (Confident AI) | 50+ метрик, agent-specific (tool calls, multi-turn), pytest-style | ~15 300 |
| Patronus AI | LLM-as-Judge с маленькими efficient моделями | proprietary |
| Ragas | RAG-метрики (faithfulness, context precision) | (зрелый, для RAG) |
В марте 2026 OpenAI купили Promptfoo — теперь это стандарт-de-facto для red-teaming агентов в OpenAI-экосистеме.
Лучшая практика 2026: Confident AI / DeepEval для full-stack agent evaluation + Promptfoo для security/red-teaming. Запускайте evals в CI (на каждом PR) и в production (online evals на real-traffic с sampling).
Категория 8: Secrets management
API-ключи, токены, БД-credentials — никогда не передавайте в LLM-context plain-text. На май 2026:
- HashiCorp Vault — gold standard. Dynamic secrets с коротким TTL, revocation, MCP server для агентов, workload identity federation
- AWS Secrets Manager / GCP Secret Manager — проще для pure-cloud, без multi-cloud
- Doppler / Infisical — managed, удобный UI
Принцип: агент получает не сам secret, а ссылку на secret (SecretRef) — реальное значение разрезолвится только в момент tool-call в защищённом окружении (sandbox или интегрированный layer).
Категория 9: Reliability — retry, fallback, circuit breaker
Embedded в фреймворки:
- LangGraph — checkpointing + retries на нодах
- OpenAI Agents SDK / Anthropic Agent SDK — встроенные retries для transient errors
- Vercel AI SDK —
experimental_telemetry+onErrorcallbacks
Паттерны 2026:
- Multi-model routing (если Opus 4.7 недоступен — fallback на Sonnet 4.6)
- Compaction (сжимание длинного state) для предотвращения переполнения контекста
- Memory (reusable lessons) — агент учится на прошлых запусках
- Tool whitelisting — агент может вызывать только разрешённые tools
- Kill switches — общий рубильник для аварийного выключения всех агентов
Что обязательно для прода (минимум)
Если ваш агент идёт в прод сегодня:
ОБЯЗАТЕЛЬНО:
[ ] Tracing — Langfuse self-host или LangSmith Plus (минимум $39/мес)
[ ] Sandbox — для любого shell/code execution (E2B Hobby tier хватит начать)
[ ] Cost monitoring — Helicone-proxy перед всеми LLM-вызовами
[ ] HITL approval — на любые destructive actions (LangGraph interrupt или OpenAI needs_approval)
[ ] Secrets через vault, не plain .env
[ ] Хотя бы базовые eval-tests в CI (DeepEval или Promptfoo)
СИЛЬНО ЖЕЛАТЕЛЬНО:
[ ] Layered guardrails (content filter + execution rail)
[ ] Online evals в проде на 5-10% трафика
[ ] Kill switch и rate limiting
[ ] Multi-model fallback
МОЖНО ОТЛОЖИТЬ ДО ПЕРВОГО ИНЦИДЕНТА:
[ ] Сложная metering/billing (OpenMeter)
[ ] Patronus / Lakera (если стандартных guardrails хватает)
[ ] Distributed tracing с Jaeger/Tempo
Best practices от вендоров
Канонические гайды на май 2026:
- OpenAI: «A Practical Guide to Building AI Agents» — strong tools/instructions, start simple, layered guardrails, HITL, memory/compaction
- Anthropic: «Writing Tools for Agents» и «Measuring Agent Autonomy»
- LangChain: «State of Agent Engineering» и «Agent Engineering — A New Discipline»
- Microsoft Azure AI Foundry: «Top-5 agent observability best practices» — model selection by benchmarks, continuous evals в CI/CD + production, red teaming
Общий consensus 2026: самые успешные production-агенты — относительно простые, heavily observed, с human oversight и tight eval/trace loop. Полная автономия растёт постепенно. Сложность multi-agent добавлять только после доказанной надёжности single-agent.
Что запомнить
- Production-ready ≠ работающий. Между ними слой из 9 категорий: observability, tracing, sandbox, HITL, guardrails, cost monitoring, eval, secrets, reliability.
- Минимум для прода — 6 пунктов из чек-листа выше. Без них первый же инцидент станет недебажируемым.
- OpenTelemetry — стандарт-де-факто для traces агентов на 2026. Если выбираете observability — выбирайте OTEL-совместимое.
- Sandbox обязателен там, где LLM пишет код или shell. Не запускайте на host.
- Layered guardrails (3-4 слоя) надёжнее одного. Не надейтесь на «промпт инструкций» как защиту.
- HITL для всего destructive. LangGraph interrupt или OpenAI needs_approval — выберите одно и используйте систематически.
- Eval/trace loop — главный учитель в проде. Каждую ошибку превращайте в test case, каждый production trace — в потенциальный eval.