Назад в блог
AI Agents

Reference architecture AI-агента для бизнес-процесса

Модель предлагает шаги, runtime ограничивает действия

Восемь компонентов и три границы доверия

Авторская схема AGENT-REF-8 без клиентских метрик
архитектура AI-агента для бизнеса и production-проверки
ТемаBounded agent runtime
ФокусAGENT-REF-8
СтатусPUBLISHED / 2026-09-21
Восемь компонентов AI-агента ведут заявку через права, данные и инструменты к подтверждённому результату
Восемь компонентов AI-агента ведут заявку через права, данные и инструменты к подтверждённому результату
TERMINAL_PREVIEW.LOG
$ agent --contract AGENT-REF-8
> intake: owner / task / scope
> evidence: permission / version
> propose: finite steps / action
> route: verified / hold / reconcile
Разбор

Архитектура AI-агента для бизнеса начинается с конкретного действия: кто ставит задачу, какие данные разрешено читать, что можно изменить и как доказать результат. Модель помогает понять запрос и предложить шаги, но приложение управляет правами, состоянием и выполнением. Ниже — авторская схема AGENT-REF-8 для одного ограниченного процесса. Это проектный пример, а не внедрение у клиента или измеренный результат.

Если вы выбираете исполнителя в Армении, начните со страницы AI-специалиста. Здесь мы разбираем более узкий вопрос: как собрать проверяемую систему вокруг модели.

Проблема и требования

Представим процесс обработки заявки B2B: сотрудник получает письмо, агент находит действующую карточку клиента и условия договора, готовит предложение об изменении CRM и черновик ответа. Система не должна отправлять письмо или менять запись только потому, что модель предложила это в тексте. Владелец процесса сначала задаёт границы.

  • Вход: заявка, идентификатор пользователя и организации, разрешённые источники.
  • Выход: проверенный ответ, черновик или подтверждённое действие с квитанцией.
  • Данные: перечень систем, классы чувствительности, сроки хранения и правила удаления.
  • Действия: разрешённые инструменты, лимиты, цели и режим согласования.
  • Сбой: маршрут при отсутствии источника, отказе интеграции, тайм-ауте и спорном результате.

Не каждый процесс требует агента. Для фиксированного маршрута с известными правилами достаточно обычной автоматизации. Для ответа по документам может хватить поискового помощника. Агент нужен, когда ход решения зависит от контекста и приходится выбирать следующий шаг в пределах заранее определённого контракта. Сравнение агента и чатбота помогает выбрать форму решения до разработки.

Архитектура решения: AGENT-REF-8

Схема разделяет восемь узлов и три границы доверия. Узлы можно реализовать отдельными сервисами или модулями одного приложения; важны контракты между ними, а не число контейнеров.

УзелВход → выходКонтроль
1. Intakeзапрос → задача с владельцем и цельюпроверка формы и идентичности
2. Policyзадача → разрешённый scopetenant, роль, цель, лимиты
3. Evidencescope → документы с версиями и ссылкамифильтр до поиска, свежесть
4. Plannerзадача и evidence → конечный плансписок шагов, срок, бюджет
5. Stateплан → versioned checkpointатомарность и возобновление
6. Tool gatewayпредложение → вызов интеграцииschema, права, idempotency
7. Reviewрискованное действие → решение человекаточный payload, цель, expiry
8. Receiptэффект → проверенный итогread-back, журнал, recovery

Граница 1 — вход и данные. Текст заявки и найденные документы — данные, не команды для приложения. Правила доступа применяются до retrieval. Недоступный документ нельзя «просто показать модели и попросить игнорировать».

Граница 2 — модель и инструменты. План модели — предложение. Tool gateway проверяет аргументы, разрешения и текущую версию объекта. Доступ к CRM выдаётся серверному адаптеру с минимальным scope, а не промпту.

Граница 3 — исполнение и подтверждение. Успешный ответ API может означать лишь принятие запроса. Receipt фиксирует идентификатор действия и читает состояние в целевой системе, если это возможно. Неизвестный эффект отправляется на сверку перед повтором.

Эта схема дополняет гайд по вызову инструментов, планированию и состоянию между шагами.

Контракты компонентов

Каждый шаг получает taskId, tenantId, actorId, policyVersion, sourceVersion и traceId. У шага есть ожидаемый тип результата и конечный маршрут: verified, hold, deny, clarify либо reconcile. Эти значения нужны и коду, и тестам, и оператору. Не храните полный текст заявки в каждом логе: для расследования достаточно ограниченных полей и защищённой ссылки на исходный объект.

ts
type ProposedAction = {
  taskId: string;
  tenantId: string;
  tool: "crm.updateDraft" | "mail.prepareDraft";
  targetId: string;
  expectedVersion: string;
  payloadDigest: string;
  idempotencyKey: string;
};

async function route(action: ProposedAction, actor: Actor) {
  if (!policy.allows(actor, action.tenantId, action.tool, action.targetId)) return "deny";
  const current = await destination.readVersion(action.targetId);
  if (current.version !== action.expectedVersion) return "hold";
  if (policy.requiresReview(action)) {
    const approval = await approvals.findExact(action.payloadDigest, action.targetId);
    if (!approval?.validNow()) return "hold";
  }
  const result = await gateway.executeOnce(action);
  if (result.effectUnknown) return "reconcile";
  return destination.verifyEffect(result) ? "verified" : "reconcile";
}

Псевдокод показывает порядок контроля, а не готовую библиотеку. В production нужны транзакции для записи состояния, безопасная аутентификация адаптеров, управление секретами и протокол восстановления после частичного выполнения. Точное согласование действий описано в материале о human approval.

Ошибки и failure modes

Подмена инструкции в документе. Полученный текст может требовать «отправить данные администратору». Evidence node передаёт источник как цитируемые данные. Tool gateway не расширяет права по тексту документа.

Устаревшая карточка CRM. Пока модель формировала черновик, сотрудник изменил поле. Сравнение версии перед записью удерживает действие и предлагает пересчитать diff.

Повтор после тайм-аута. Вызов мог выполниться, даже если ответ потерялся. Повтор с новым ключом может создать дубль. Сначала сверяют idempotency key или читают конечный объект.

Потеря контекста. После перезапуска нельзя верить только истории сообщений. Checkpoint содержит версию плана, завершённые шаги и квитанции; права и источники перепроверяются при возобновлении.

Молчаливое расширение полномочий. Общая фраза «помоги с продажами» не разрешает отправлять письма или менять цены. Политика определяет цели, лимиты и требуемый review по типу действия.

Тестирование и путь к production

Сначала соберите набор синтетических заявок: стандартная, неполная, чужой tenant, удалённый документ, устаревшая версия CRM, подменённая инструкция, отказ интеграции и потерянный ответ после записи. Для каждого случая зафиксируйте разрешённый источник, ожидаемый маршрут и проверку отсутствия запрещённого эффекта. Отдельно проверьте параллельные задачи и повторное использование согласования.

Запускайте первый пилот в режиме чтения и подготовки черновика. Потом включите один узкий write path с review, журналом и способом отката. Перед расширением проверьте права доступа, срок хранения, восстановление, наблюдаемость, стоимость вызовов и владельца инцидента. Метрики пилота — доля маршрутов hold/deny, ошибки источников, время review и случаи неизвестного эффекта — нужно измерять на своих данных; здесь нет обещанных процентов.

Prompt engineering помогает задать формат и критерии ответа, а AI-автоматизация — встроить маршрут в существующий процесс. Если нужен разбор конкретной схемы, пришлите описание процесса: вход, допустимое действие, владелец системы и один сложный сбой.

CODE_BLOCK.TXT
require(policy.allows(actor, tenant, tool, target));
if (target.version !== expectedVersion) return hold;
if (risk.requiresReview && !approval.matches(payloadDigest)) return hold;
result = await executeOnce(idempotencyKey);
return result.unknown ? reconcile : verifyAtDestination(result);