AI Platform Docs
API

Интерфейсы Low-code Runtime

Гарантированные A2A, MCP, FileRef и проверки состояния Low-code Runtime 2026.3.5.

Граница доступа

Low-code Runtime не является прямым общедоступным сервером. Пользователь и AES вызывают агента только через Platform Agent Gateway. Gateway проверяет удостоверение, связь маршрута с конкретной версией и право agent#invoke, затем передает короткоживущее удостоверение, предназначенное этой рабочей нагрузке.

Внутренний адрес Low-code Runtime не публикуется Agent Registry и не должен использоваться клиентом.

Зафиксированные версии

КонтрактВерсия
A2AСпецификация 1.0.0, A2A-Version: 1.0, HTTP+JSON
MCP2025-11-25, Streamable HTTP
FileRefplatform.file-ref/v1
Исходная схемаplatform.low-code.flow/v2
Манифестplatform.low-code.publish-manifest/v2
JSON Schema2020-12

Модели A2A и MCP преобразуются во внутренний нейтральный запрос исполнения. Они не используются как канонические внутренние модели приложения.

Проверки состояния и карточка

Метод и путьНазначение
GET /health/liveПроверка живого процесса
GET /health/readyПроверка источника, манифеста, политики, точки входа, карточки и критической настройки
GET /.well-known/agent-card.jsonПроверенная карточка A2A, соответствующая включённому профилю среды исполнения

Эти маршруты принадлежат эксплуатационной и контрольной границе среды. Их публичность определяется политикой маршрутизации, а не фактом наличия в приложении.

Карточка формируется из манифеста и фактического реестра возможностей среды исполнения: идентификатор, версия, адрес, навыки, схемы и режимы медиа-данных берутся из манифеста и маршрутизации развёртывания, а не из произвольных полей схемы. Флаги возможностей генерируются из реестра возможностей среды исполнения и подтверждений соответствия. Запрошенный, но нереализованный режим блокирует готовность и регистрацию кодом advertised_capability_unavailable.

Для потоковой передачи готовность дополнительно требует A2A 1.0, режим исполнения a2a_agent и значение contract.capabilities.streaming=true. Отсутствие значения или false оставляет карточку нестриминговой, а message:stream возвращает типизированный ответ о неподдерживаемой операции.

Профиль A2A первой поставки

МетодПоведение
POST /message:sendПоддерживаемый синхронный вызов с текстом или структурированными данными → конечное Message
POST /message:streamПри streaming=true: SSE, сначала Task, затем упорядоченные обновления статуса и артефактов, закрытие на конечном статусе; иначе типизированный ответ о неподдерживаемой операции
Получение и список задачЛокальные для процесса снимки в пределах жизни одной реплики среды исполнения
Подписка на задачуПри streaming=true: сначала текущий Task, затем живые обновления; завершённая задача → UnsupportedOperationError
Отмена задачиТипизированный ответ о неподдерживаемой операции
Уведомления о выполненииНе декларируются, типизированный ответ о неподдерживаемой операции
Расширенная карточкаТипизированный ответ о недоступной настройке

streaming=true не означает устойчивые (durable) задачи: хранилище и брокер потоков находятся в одном процессе, профиль развёртывания — одна реплика, поиск задачи после перезапуска пода не гарантируется. Значение манифеста tasks=true резервирует отдельный устойчивый профиль и блокирует готовность до новой реализации или решения.

Каждый запрос, за исключением выделенных маршрутов health и карточки, приходит через Platform Agent Gateway и требует согласования версии A2A. Поддерживаются ровно те режимы медиа-данных, которые указаны в карточке. Входные и выходные JSON проверяются по схемам манифеста. Ошибки используют стандартный типизированный результат A2A или application/problem+json и никогда не возвращают частичный успех или необработанное исключение.

Последовательность обработки:

  1. проверить версию протокола, тип содержимого и ограничение размера;
  2. проверить удостоверение и право выполнения;
  3. разрешить FileRef, если включена соответствующая возможность;
  4. применить входные Guardrails;
  5. преобразовать текстовые и структурные части сообщения и доверенный контекст во внутренний запрос;
  6. исполнить выбранную точку входа схемы lfx;
  7. применить выходные Guardrails и проверку по JSON Schema;
  8. преобразовать результат в A2A Message или выбранный профиль задачи;
  9. при отказе вернуть очищенный стабильный код ошибки и traceId.

Профиль MCP первой поставки

MCP включается только если режимы исполнения манифеста содержат mcp_tool и проверка соответствия при запуске прошла успешно.

Поддерживаются:

  • initialize и завершение начальной установки сеанса для редакции 2025-11-25;
  • tools/list, возвращающий ровно один неизменяемый инструмент схемы с входной и выходной JSON Schema и tools.listChanged=false для первой поставки;
  • tools/call, проверяющий аргументы, вызывающий общий прикладной сценарий и возвращающий структурированный результат или ошибку, соответствующий схеме.

Не поддерживаются и не объявляются ресурсы, шаблоны ресурсов, подсказки, выборка, корни, elicitation, управление журналированием и экспериментальные задачи MCP. Неверный метод возвращает типизированную ошибку в соответствии с протоколом без запуска схемы.

Имя инструмента — стабильный идентификатор из манифеста; заголовок и отображаемое имя хранятся отдельно. Аннотации инструмента не выдают разрешения безопасности. Вызов MCP имеет собственный контракт безопасности и не наследует A2A authenticated_all автоматически. До его принятия первая поставка MCP остаётся защищённым подтверждением R1, а не производственной экспозицией R2. Среда исполнения не воссоздаёт идентичность пользователя из полей сеанса или запроса MCP.

Изменение определения инструмента создаёт новую ревизию манифеста и рабочей нагрузки с обычной сверкой реестра. Динамическое уведомление notifications/tools/list_changed не входит в первую поставку.

FileRef

Клиент передает логическую ссылку:

{
  "apiVersion": "platform.file-ref/v1",
  "fileId": "00000000-0000-0000-0000-000000000000",
  "name": "contract.pdf",
  "mediaType": "application/pdf",
  "size": 245000,
  "sha256": "64-hex",
  "capability": "opaque-target-bound-value",
  "expiresAt": "2026-08-11T10:15:00Z"
}

Проверка полномочия выполняется на собственном эндпоинте файла и проверяет:

  • подпись, издателя, получателя и срок действия;
  • владельца и действующего субъекта, а также вызывающего там, где это требуется;
  • точный целевой агент, операцию и запуск/сеанс;
  • идентификатор файла, хеш, размер и медиа-тип;
  • разрешённое количество или диапазон чтений и отзыв, если профиль их поддерживает.

Ограничение по субъекту или вызывающему может храниться внутри непрозрачного полномочия и проверяться собственным эндпоинтом. Это не передаёт среде исполнения отдельную идентичность пользователя и не возвращает исходный bearer-токен.

Среда исполнения не принимает угаданный идентификатор файла, произвольный URL, путь поставщика или пользовательский bearer как достаточное полномочие. Межпользовательские и меж-агентские ссылки, ссылки на другую операцию, а также просроченное или изменённое полномочие отклоняются до загрузки у поставщика и выполнения схемы.

Адаптер FileRef выполняет:

  1. проверять метаданные и полномочие через типизированный порт доступа к файлам;
  2. читать поток с ограничением размера и времени и проверять хеш либо получать одноразовый канал с ограниченной областью чтения;
  3. проверять поддерживаемый поставщиком медиа-тип;
  4. загрузить или сопоставить байты в детали поставщика lfx;
  5. передавать в адаптер lfx только внутренний идентификатор или путь файла поставщика;
  6. удалить временный объект поставщика или дождаться истечения его срока согласно политике хранения;
  7. в журнал записывать безопасный идентификатор файла, префикс хеша и принятое решение, но никогда байты, полномочие или подписанный URL.

Путь или идентификатор файла поставщика не возвращается как полномочное FileRef платформы и не может быть повторно использован для другого агента или запуска. Ошибка сопоставления возвращает типизированный file_provider_mapping_failed, исходное полномочие при этом остаётся скрытым.

Точная форма интерфейса Agent Registry опубликована в отдельном справочнике.

На этой странице