DATAFOCUS · OT FLASH · R56

OT Flash Agent и руководство по подключению MCP

Протокол, авторизация, контракты инструментов и полный процесс вызова

Создавайте отслеживаемые приложения для данных и знаний с использованием публичного Remote MCP OT Flash r56. В этом руководстве приведены OAuth, сообщения протокола, справочник параметров всех объявленных инструментов, правила доказательств, условные возможности и процессы восстановления, а также примеры работающего клиента и синтетических данных.

Разработчики Agent, инженеры по интеграции и администраторы

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

Глава 1

Область подключения Agent и критерии завершения

Выберите точку входа авторизации и на основе подтверждений сервера выполняйте запросы, сбор доказательств или контролируемую запись.

OT Flash r56 предоставляет внешним Agent через Remote MCP возможности работы с данными и знаниями в рамках онтологии, а также отдельную точку входа Business Workspace. Agent должен определять доступную работу на основе фактических tools/list, inputSchema, scope OAuth и текущих разрешений ресурсов; нельзя на основании статического руководства делать вывод, что в развертывании включены все необязательные функции.

Рис. A1. Внешний Agent использует исходные возможности запросов, знаний и бизнеса через OAuth и MCP. Схема интерфейсных связей.
ВходНазначениеГраницы
/mcpОнтология, таблицы данных, знания документов, нативный Search и условно открытые анализ и моделированиеПересечение текущих разрешений пользователя и ресурсов данной авторизации
/mcp/businessОбнаружение бизнес-систем, запросы, планы действий, состояние и выполнениеАвторизация независимых бизнес-систем и контракт публикации
Встроенная страница онтологического агентаИспользование онтологического диалога в пользовательском интерфейсеЗависит от реального состояния входа; это не точка обмена MCP Token без входа в систему

Классификация возможностей

  • Базовое чтение: онтология и ресурсы, позиционирование на графе, поиск знаний и полный исходный текст, детали авторизованных таблиц и Doris SQL.
  • Независимое делегирование: dfc_search требует search:operate и продолжает использовать разрешения исходного пользователя и модели.
  • Условно открытые: анализ, постоянные отчёты, черновики и приложения артефактов, запросы онтологических моделей и задачи делегированных Agent.
  • Недоступные возможности: dfc_etl для Flash только сообщает capabilities и не предоставляет выполнение Heavy ETL. AutoML и внутренние точки входа рабочих пространств FocusCode не входят в публичный Flash API этого руководства.

Критерии завершения

Чтение фактов требует фактического доступного подтверждения запроса или полного исходного текста; генерация кандидатов должна указывать, что они ещё не применены; публикация требует реального подтверждения APPLIED; отмена должна различать запрос и подтверждение. Текст ответа, HTTP 200, факт принятия инструмента или описание модели о «выполнении» по отдельности не доказывают успешность бизнес-операции.

Сопутствующий reference/mcp-tool-catalog.json — это автономный справочник объявлений для r56, содержащий определения условно включённых функций, но не чей-либо актуальный tools/list. Полный каталог включает 28 основных инструментов онтологии, 4 условных расширения контроллеров и 8 бизнес-инструментов; это не означает, что всё открыто по умолчанию.

Глава 2

Быстрое подключение и обнаружение возможностей

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

  1. Получите у администратора официальный корневой адрес HTTPS и онтологию или бизнес-систему, к которым требуется доступ. Не используйте примеры доменов из документации для вызова реального бизнеса.
  2. Настройте адрес сервера MCP как https://flash.example.com/mcp; Business Workspace использует /mcp/business того же домена.
  3. В соответствии с поддержкой клиента инициируйте вход и авторизацию OAuth, проверьте ресурсы и scope; не передавайте имя пользователя и пароль в MCP.
  4. Используйте обнаружение или инициализацию протокола соответствующего поколения, затем прочитайте tools/list и описания ресурсов.
  5. Сначала выполните небольшой запрос только для чтения, проверьте структурированные результаты и ошибки, затем выполняйте цель пользователя.

Фрагмент конфигурации клиента

json
{
  "mcpServers": {
    "ot-flash": {
      "url": "https://flash.example.com/mcp"
    }
  }
}

Этот фрагмент иллюстрирует замысел конфигурации адреса сервера; конкретная структура файла конфигурации и поддержка OAuth зависят от клиента. Не указывайте в публичных файлах реальные access_token, refresh_token, Cookie или пароли администратора.

Обнаружение современного протокола

http
POST /mcp HTTP/1.1
Host: flash.example.com
Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json
Accept: application/json, text/event-stream
MCP-Protocol-Version: 2026-07-28
Mcp-Method: server/discover

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "server/discover",
  "params": {
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientInfo": {"name": "flash-client", "version": "1.0.0"},
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}

Проверки перед подключением

  • Корневой адрес ресурса, issuer OAuth и внешний адрес обратного прокси совпадают.
  • Клиент поддерживает соответствующее поколение протокола, а не всегда отправляет initialize на точку входа нового протокола.
  • Текущая авторизация привязана к требуемой онтологии или бизнес-системе.
  • Token действителен, и новые необязательные scope явно авторизованы.
Глава 3

Обнаружение, регистрация и авторизация OAuth

Используйте код авторизации и PKCE, не раскрывайте Agent учётные данные для входа в продукт.

Рис. A2. Процесс кода авторизации OAuth и PKCE. Схема последовательности.
Конечная точкаМетодНазначение
/.well-known/oauth-protected-resourceGETОбнаружение ресурсов онтологии MCP
/.well-known/oauth-protected-resource/mcpGETСовместимое обнаружение путей ресурсов онтологии
/.well-known/oauth-protected-resource/mcp/businessGETОбнаружение ресурсов бизнеса MCP
/.well-known/oauth-authorization-serverGETМетаданные сервера авторизации
/oauth/registerPOST JSONДинамическая регистрация public client
/oauth/authorizeGET или form POSTВход, выбор ресурса и подтверждение авторизации
/oauth/tokenPOST formОбмен кода авторизации и ротация refresh
/oauth/revokePOST formОтзыв Token
/oauth/grantsGETПросмотр авторизованных подключений вошедшим пользователем
/oauth/grants/revokePOST formОтзыв подключения через стандартную процедуру на исходной странице

Порядок авторизации

  1. Прочитайте метаданные защищённого ресурса и сервера авторизации. 401 в ответе на запрос без Token и WWW-Authenticate указывают адрес обнаружения ресурса.
  2. Зарегистрируйте или используйте идентификацию клиента. Динамическая регистрация public client r56 использует token_endpoint_auth_method=none; нельзя заменять PKCE клиентским секретом.
  3. Сгенерируйте случайные state и code_verifier, вычислите code_challenge S256.
  4. Откройте адрес authorize, указанный в метаданных, передав response_type=code, client_id, точный redirect_uri, scope, resource, state, code_challenge и code_challenge_method=S256.
  5. Пользователь входит в DataFocus и выбирает онтологию или бизнес-систему. Клиент не может заранее включать ресурсы, к которым пользователь не имеет доступа.
  6. Примите обратный вызов, проверьте state и issuer; обменяйте код авторизации, используя исходный code_verifier.
  7. Используйте access_token только для Bearer-аутентификации MCP. Обновление использует исходный процесс OAuth; безопасно сохраняйте ротированный refresh_token.

Пример регистрации

json
{
  "client_name": "OT Flash Knowledge Client",
  "redirect_uris": ["http://127.0.0.1:8765/callback"],
  "application_type": "native",
  "token_endpoint_auth_method": "none",
  "grant_types": ["authorization_code", "refresh_token"],
  "response_types": ["code"]
}

Обратный вызов веб-клиента использует HTTPS; нативные клиенты могут использовать поддерживаемые loopback-адреса. Авторизация и обмен Token точно соответствуют зарегистрированному обратному вызову. Один Grant относится к одному protected resource; не смешивайте scope онтологии и Business Workspace в одном подключении.

Жизненный цикл Token

По умолчанию на сервере r56 access token — 3600 секунд, refresh token — 2592000 секунд, код авторизации — 300 секунд; развертывание может переопределить эти значения. Клиент должен использовать expires_in из ответа token и фактические ошибки, не зашивая значения по умолчанию. После обновления обновите Token; отзыв роли, разрешения ресурса или Grant приводит к отклонению последующих вызовов.

Глава 4

Scope, границы ресурсов и права в реальном времени

Область авторизации делегирует существующие разрешения, не повышает роли и не разделяет бизнес-состояние между Grant.

ScopeТипичные возможностиВажные ограничения
ontology.metadata:readОнтология, ресурсы, структура таблицОнтология и таблицы должны быть в пределах авторизации и текущей читаемости
ontology.graph:readПоиск по графу и соседиВозвращается информация о позиционировании, а не доказательства фактов
ontology.knowledge:readПозиционирование знаний и полный исходный текстСохраняются исходные разрешения Knowledge и документов
ontology.table:queryЗапросы SQL таблицы онтологии и опубликованных моделейДля запроса таблицы также нужен scope metadata; действуют фактические источники и права на столбцы
search:operateНативные модели по ключевым словам и сеансыОтдельное явное делегирование; выполняется по разрешениям исходной модели и столбцов таблицы пользователя
etl:operateFlash ETL capabilitiesHeavy ETL не открывается
authoring.contract:readУсловно открытые контракты моделированияТакже требуются функциональные переключатели и соответствующие ресурсы
authoring.artifact:readТекущее авторизованное чтение кандидатов и плановПривязано к исходному субъекту Grant и ресурсу
authoring.artifact:draftОтправка кандидатов, предпросмотр и т. д.Не авторизует выполнение или публикацию
authoring.artifact:applyКонтролируемые планы и применениеПо-прежнему требуются исходные бизнес-роли, политики и утверждения
execution.script:draftЧерновики определённых скриптовНе авторизует фактическое выполнение скриптов
datasource.http:read / draft / test / importУсловно открытые возможности артефактов источников данных HTTPОтдельный переключатель и исходные разрешения для каждой
Рис. A3. Доступные возможности определяются совместно разрешениями пользователя, Grant, выбранными ресурсами и конфигурацией функций. Схема.

Требования к комбинациям чтения

dfc_table detail требует ontology.metadata:read; query дополнительно требует ontology.table:query. dfc_ontology_query требует двух scope чтения: graph и knowledge. dfc_knowledge_search/detail требует knowledge. published_model/published_query используют table:query; candidate_query дополнительно требует authoring.artifact:read. Инструменты анализа также проверяют разрешённые scope доказательств; постоянные отчёты требуют metadata и table query.

Не зашивайте авторизацию по умолчанию

Набор scope онтологии по умолчанию для r56 включает table query; Search и ETL — явное делегирование. Окончательным критерием остаются метаданные обнаружения, страница авторизации, фактический scope Token и tools/list. Утверждения из старой документации о том, что «онтомлогия по умолчанию точно не имеет SQL» или «только шесть инструментов», не могут служить основанием для текущей реализации.

Изоляция состояний

Сеансы, отчёты, кандидаты и планы действий имеют собственных владельцев и области. Обновление access token не передаёт работу исходного Grant другому Grant. Не объединяйте с текущим подключением sessionId, reportId, planId, токены утверждений или исходные Token, возвращённые другим подключением.

Глава 5

Сообщения HTTP и современного MCP

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

ПроектПоведение r56
Транспорт Stateless Streamable HTTP, POST JSON-RPC
Поддерживаемая идентификация2026-07-28, а также 2025-11-25 2025-06-18 2025-03-26
Современные методыserver/discover, tools/list, tools/call, resources/list, resources/read — открываются по фактическим возможностям
Заголовок сеансаMcp-Session-Id не назначается
GET и DELETE/mcp и /mcp/business возвращают 405
Уведомления SSE сервераНе предоставляются этими двумя публичными точками входа MCP
Кэширование каталогаВ современном обнаружении и ответе списка возвращается ttlMs=60000 и cacheScope=private
Обычный результатСовременный результат содержит resultType=complete и метаданные сервисной идентичности

Содержимое, которое должно совпадать

  • MCP-Protocol-Version совпадает с io.modelcontextprotocol/protocolVersion в params._meta.
  • Mcp-Method совпадает с методом JSON-RPC.
  • Mcp-Name для tools/call совпадает с params.name; заголовок имени для resources/read совпадает с URI.
  • Каждый современный запрос содержит объект io.modelcontextprotocol/clientCapabilities; при этом предоставляется стандартный clientInfo для распознавания клиентом.

Пример вызова

json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "dfc_ontologies",
    "arguments": {"page": 1, "pageSize": 20},
    "_meta": {
      "io.modelcontextprotocol/protocolVersion": "2026-07-28",
      "io.modelcontextprotocol/clientInfo": {"name": "flash-client", "version": "1.0.0"},
      "io.modelcontextprotocol/clientCapabilities": {}
    }
  }
}

Соответствующие заголовки для HTTP: Mcp-Method: tools/call и Mcp-Name: dfc_ontologies. Все ACCESS_TOKEN в примерах являются заполнителями. Не помещайте Bearer-токен в параметры URL, JSON или в ключи кэша.

Чтение результата

Сначала обработайте статус HTTP, затем проверьте JSON-RPC error; при наличии result продолжите проверку isError. Успешный результат инструмента обычно предоставляет structuredContent, а также text-содержимое с тем же бизнес-JSON; отдавайте приоритет структурированному каналу и не суммируйте text и structuredContent повторно как два независимых источника фактов. HTTP 200 может содержать ошибку инструмента.

Общие ресурсы и UI

Встроенный ресурс с инструкциями не зависит от MCP Apps. Вход в Business Workspace не получает при этом ресурс с описанием онтологии. Клиенты с поддержкой визуализации должны обнаруживать соответствующий UI через фактически объявленные возможности и tool _meta, не угадывая не возвращённые URI ресурсов.

Глава 6

Совместимость со старыми клиентами протокола

Поддерживайте согласованную эпоху протокола в клиентах, всё ещё использующих инициализационное рукопожатие.

json
{
  "jsonrpc": "2.0", "id": 1, "method": "initialize",
  "params": {
    "protocolVersion": "2025-11-25",
    "capabilities": {},
    "clientInfo": {"name": "flash-legacy-client", "version": "1.0.0"}
  }
}
  1. Отправьте initialize и прочитайте согласованные сервером версию протокола и capabilities.
  2. Отправьте необходимые уведомления о завершении инициализации в соответствии с протоколом клиента; уведомления не возвращают обычных результатов инструментов.
  3. Используйте tools/list для чтения текущих авторизованных инструментов, затем отправьте tools/call.
  4. Согласуйте заголовки и сообщения с текущей эпохой запросов; не отправляйте старые initialize или ping-процедуры в сообщениях 2026-07-28.

Старый протокол использует те же Bearer/OAuth, разрешения и контракты инструментов. Это не означает, что сервер обязательно предоставляет старые SSE долгоживущие соединения или Mcp-Session-Id; публичная служба r56 остаётся без сохранения состояния.

Ошибки протокола

СитуацияТипичный результатКак исправить
Несоответствие современных заголовков и сообщенияHTTP 400 JSON-RPC -32020Исправьте заголовки, метаданные и имя инструмента
Неподдерживаемая версия-32022 со списком поддерживаемых версийВыберите фактически поддерживаемый протокол
Неизвестный методJSON-RPC -32601; современный запрос может вернуть HTTP 404Проверьте эпоху протокола и метод
Отсутствующие или недопустимые параметрыJSON-RPC ошибка параметров или isError инструментаИсправьте в соответствии с фактическим inputSchema
Глава 7

Выбор правильного инструмента и канала доказательств

Осуществляйте маршрутизацию на основе нерешённой бизнес-задачи, не повторяя сбор доказательств по фиксированной цепочке вызовов.

На рисунке A4 показан выбор таблицы SQL, доказательств знаний, Search, анализа или бизнес-действия в зависимости от задачи. Схема маршрутизации.
ЗадачаПредпочтительный инструментНеобходимые доказательства для завершения
Обнаружение авторизованных тем и ресурсовdfc_ontologies dfc_ontology_resourcesФактические типы ID ресурсов и текущая область видимости
Табличная статистика и TopNdfc_table queryКвитанция успешного выполнения и полный evidenceRows
Поиск регламента, контракта или отчётаdfc_ontology_query или knowledge search/detailПолный, авторизованный исходный текст, пригодный для использования в качестве факта
Определение объекта графаdfc_ontology_graph search/neighborsСначала найдите фактический источник, затем получите соответствующий факт
Взаимодействие по исходному ключевому словуdfc_manual затем dfc_searchФактические результаты исходной модели и бизнес-кадра
Объединённый анализ и отчётыdfc_analysis_* или dfc_report_*Реальные статусы каждого структурированного ответвления и документальных доказательств
Изменение представления или модели онтологииdfc_authoring_* и инструменты артефактовОтдельно проверяйте кандидатов, планы, согласования и фактическое применение
Выполнение бизнес-командdfb_* для /mcp/businessОпубликованный контракт и квитанция исходного ActionPlan

Избегание ненужных вызовов

Если уже есть актуальная, полная, авторизованная структура таблицы, не требуйте повторного detail при каждом запросе; если уже есть надёжная локализация и доказательства, не повторяйте тот же поиск. При нехватке какого-либо измерения выполняйте ограниченный дополнительный запрос. Если ошибка явно не подлежит повтору, сначала устраните пробел, не заменяя оценку «попробовать ещё раз».

Исключения для Flash

dfc_etl capabilities может возвращать available=false и ETL_NOT_INCLUDED_IN_OT_FLASH. Статическое описание встроенной функции ETL служит справочным материалом между продуктами и не доказывает, что в Flash установлен ETL, а также не позволяет Agent автоматически переключаться на Heavy или другого арендатора для выполнения.

Глава 8

Ресурсы онтологии и типы ID

Сначала получите фактические координаты ресурса, чтобы не смешивать имена хранения, ID документов и ID базы знаний.

  1. Вызовите dfc_ontologies и просмотрите с помощью page и pageSize онтологии, авторизованные в этот раз и всё ещё доступные для чтения.
  2. Вызовите dfc_ontology_resources с реальным ontologyId; при необходимости выберите tables, answers, pinboards, documents и knowledgeBindings.
  3. Обрабатывайте пагинацию отдельно для каждого типа ресурса. Максимум для pageSize — 100; не делайте вывод обо всём объёме ресурса по первой странице.
  4. Сохраните заявленный тип ресурса и исходный ID и используйте их в последующих вызовах без изменений.
json
{"name":"dfc_ontology_resources","arguments":{
  "ontologyId":"<ONTOLOGY_ID>",
  "resourceTypes":["tables","documents","knowledgeBindings"],
  "page":1,"pageSize":100
}}
КоординатыИсточникНе заменяет
ontologyIdСписок авторизованных онтологий или текущий действующий контекстID другой онтологии
ID табличного ресурсаСписок tables или надёжный контекстphysicalName или отображаемое имя таблицы
tblDisplayName colDisplayNameМетаданные текущей таблицы и столбцовПредположительный физический идентификатор SQL
knowledgeIdknowledgeBindings или фактическая квитанция поиска знанийID документного ресурса
assetId documentId chunkId evidenceIdТа же самая фактическая квитанция локализацииПоля, собранные из разных результатов локализации
rid revisionId releaseIdОпубликованная модель или серверный контекст кандидатаСамостоятельно сгенерированный ID или latest

Соглашения о точности

Все 64-битные идентификаторы ресурсов предпочтительно передавать как десятичные строки, без преобразования через Number в JavaScript. Некоторые бизнес-схемы допускают string или integer, но это не означает, что целочисленной точностью можно пренебречь. Opaque locator, UUID, хэши и одноразовые токены также сохраняются как есть.

Глава 9

Контракт табличных запросов и структуры Doris

Выполняйте только для чтения запросы SQL к авторизованным таблицам, сохраняя семантику вывода, точные значения и полноту.

Чтение структуры

json
{"name":"dfc_table","arguments":{
  "action":"detail","ontologyId":"<ONTOLOGY_ID>","id":"<TABLE_RESOURCE_ID>"
}}

В detail используйте реальный ID табличного ресурса. Сверьте schemaComplete, tblDisplayName, colDisplayName в columns и авторитетный sqlDataType, а также возвращённый queryContract. dataType — это лишь карта совместимости; имя физического хранения — не имя таблицы для отправки SQL.

Выполнение запроса

json
{
  "name": "dfc_table",
  "arguments": {
    "action": "query",
    "ontologyId": "<ONTOLOGY_ID>",
    "sql": "SELECT \"区域\", SUM(\"销售金额\") AS \"销售金额合计\" FROM \"电商销售数据\" WHERE \"订单状态\" = '已完成' GROUP BY \"区域\" ORDER BY \"销售金额合计\" DESC",
    "maxRows": 100
  }
}

Ограничения SQL

  • Используйте отображаемые имена таблиц и столбцов, заключая идентификаторы в двойные кавычки. Запрос представляет собой запрос Doris только для чтения в пределах онтологии.
  • Явно перечисляйте выводимые столбцы; SELECT * и table.* запрещены: они не позволяют обойти зарегистрированные права доступа к столбцам через физические столбцы.
  • Для соединений используйте явный JOIN ... ON; NATURAL JOIN и JOIN USING будут отклонены.
  • Допустимы только для чтения выражения, такие как многомерные агрегации, CTE, оконные функции, CASE, COUNT(DISTINCT ...); отсутствие покрытия выражения семантической валидацией не означает общего запрета на выполнение.
  • Сначала выполните агрегацию, сортировку и ранжирование в SQL, затем примените ограничение результатов. maxRows по умолчанию 100, максимум 200.

Даты и часовые пояса

Тип или цельФормаПримечания
DATECAST('2026-09-01' AS DATE) и CURRENT_DATEНельзя напрямую предполагать тип даты из текстового литерала
DATETIMECAST('2026-09-01 00:00:00' AS DATETIME) и CURRENT_TIMESTAMPСверьте часовой пояс источника и часовой пояс сессии
Относительное времяDATE_SUB(CURRENT_DATE, INTERVAL 1 YEAR)Для дат и временных меток используйте соответствующие текущие функции
Группировка по времениYEAR(column) или DATE_TRUNC(column, 'month')Каждому выходному столбцу присваивайте уникальный псевдоним; ориентируйтесь на queryContract

DATE('now', ...) в SQLite — это не контракт дат Doris для данного входа. Не переносите описанный в документации способ офлайн-проверки SQLite в рабочую SQL.

Чтение квитанции запроса v8

evidenceRows — единственный канал Agent для доступа к строковым данным; raw data для Agent недоступны. Числа в SQL кодируются как точные десятичные строки JSON; их числовое и бизнес-значение определяется по resultColumnContracts, и их не следует интерпретировать как VARCHAR только потому, что JSON является строкой. Читайте executionReceipt, информацию о полноте и усечении, сохраняя сведения об источнике, такие как evidenceRowsSha256.

Выходные данные запросов, для которых есть цитируемая квитанция выполнения, можно цитировать как есть; только семантика, проверенная на стороне сервера, может authorize последующие детерминированные вторичные вычисления. Нельзя по имени поля угадывать «накопленный остаток», «значение на конец периода», «币种» или самостоятельно добавлять единицы измерения. Результаты с нулём строк, сбои или усечение нельзя представлять как полную статистику.

Глава 10

Многомерный Top3 и обработка усечения

Отвечайте на вопросы о ранжировании с помощью серверных агрегаций и оконных функций, не выполняя вторичных вычислений на неполных результатах.

Используя пример таблицы из examples/top3.sql, сначала выполните агрегацию по区域, 类别 и 产品, затем выполните ROW_NUMBER внутри каждого区域 и 类别, используя имя产品 как стабильный порядок при равных суммах. Запрос с maxRows=100 достаточен для 36 строк примера; для других бизнес-данных объём нужно оценивать по фактическому числу групп.

  1. Получите фактическую структуру и текущую методику, уточните币种, период, 订单状态 и правила обработки равных значений.
  2. Отправьте серверную агрегацию и ранжирование SQL. Не запрашивайте сначала только сумму区域, а затем используйте её как ранжирование类别产品.
  3. Проверьте контракт выходных столбцов и фактический evidenceRows, убедившись, что возвращённые данные покрывают все нужные группы.
  4. При обнаружении усечения выполняйте ограниченные секционированные запросы в пределах поддерживаемых сервером границ, например получая полный Top3 по каждому区域; каждый раз сохраняйте одну и ту же бизнес-методику.
  5. Если исходный период изменился, выполните запрос заново и явно укажите новую версию; не смешивайте разные версии данных или устаревшие курсоры.
Рисунок A5: порядок детальной фильтрации, группировки, ранжирования внутри группы и итогового возврата. Иллюстрация.

Восстановление после ошибок

TABLE_SCHEMA_INCOMPLETE должен быть исправлен или получена полная структура; сбои вроде ONTOLOGY_SQL_FAILURE_CONTRACT_INVALID обрабатываются по возвращённым errorCode, retryable и remediation. Не утверждайте, что «все многомерные GROUP BY или оконные функции запрещены», и не выдумывайте ранжирование, не имея результатов запроса.

Глава 11

Поиск в знаниях: полный исходный текст и квалификация доказательств

Разделяйте позиционирование, чтение и цитирование фактов, сохраняя источник и полноту.

Два распространённых пути

ПутьНазначениеКлючевые моменты
dfc_ontology_queryПоиск в привязанных к онтологии знаниях с возможной маршрутизацией по графуПроверка полного canonical answerContextItems и квалификации доказательств
dfc_knowledge_search → фрагмент dfc_knowledge_detailЯвный поиск для позиционирования, затем чтение выбранного фрагментаПредпросмотр поиска не является фактом; читайте полный исходный текст по тому же позиционированию
json
{"name":"dfc_knowledge_search","arguments":{
  "ontologyId":"<ONTOLOGY_ID>","query":"销售金额是否排除退货", "topK":5
}}

{"name":"dfc_knowledge_detail","arguments":{
  "action":"chunk","ontologyId":"<ONTOLOGY_ID>",
  "evidenceId":"<EVIDENCE_ID_FROM_THE_SAME_SEARCH_RESULT>"
}}

Условия пригодности для фактов

  • Проверьте текущий ACL, полноту содержимого и серверные canonicalFactEligible, citationEligible или соответствующий контракт выполнения.
  • Полное содержимое связано с contentSha256. Усечение, пропуск по бюджету или низкокачественное содержимое обрабатываются по фактическим полям.
  • Метаданные документа, page_context, позиция в графе, поисковые сводки и предпросмотр не заменяют canonical-оригинал.
  • В первую очередь копируйте evidenceId; когда требуются chunkId и documentId, они должны быть взяты из одного и того же результата позиционирования, без склейки или выдумывания.

Маршрутизация по графу

Результат search/neighbors — это информация о позиционировании. В query онтологии передавайте только объекты routeLocator, полностью возвращённые сервером, включая привязки, версии и поля подтверждения. Не оборачивайте assetId или knowledgeId в самостоятельно созданный серверный locator и не возвращайте заявленные моделью подтверждения источника.

Восстановление структурированных документов

structuredPlan для dfc_ontology_query — это ограниченное восстановление с детерминированной проверкой, предназначенное специально для нерегулярных табличных данных в документах. Используйте план, объявленный сервером, только после возврата текущего executionContractSha256, tableIndex, столбцов и полной таблицы. Обычные уже импортированные бизнес-таблицы должны обрабатываться через dfc_tableSQL; не используйте восстановление Markdown-таблиц как обходной канал авторизации табличных запросов.

Рисунок A6: цепочка доказательств от результата позиционирования к цитируемому оригиналу. Иллюстрация.

Стратегия поиска

knowledgeIds обычно опускается, чтобы охватить текущие включённые привязки; при передаче используйте только реальные ID баз знаний knowledgeBindings. Не указывайте ID ресурса документа как ID базы знаний. Выполняйте новое ограниченное поиск-задание по нерешённому вопросу, избегая точных повторов поисков без новых доказательств.

Глава 13

Соглашения по языку и регионам

Сохраняйте границы между UI locale, словарём запросов, языком возврата и именами исходных полей.

Приоритет: явно запрошенный язык, язык прикладной системы, locale фактического исполняющего узла. Значения по умолчанию, null, пустые строки и пробелы не приводят автоматически к откату на китайский. Значения регионов в languageRegistry должны оставаться точными; en-GB, fr-CA, pt-BR, es-US или ar-AE нельзя произвольно сворачивать в другой регион.

Язык или регионLocale запросовОписание
Упрощённый китайский, традиционный китайскийzh-CN zh-HantИсходные китайские правила и традиционный каталог различаются
Английский (США, Великобритания, Австралия, Канада)en-US en-GB en-AU en-CAUI/пакеты ключевых слов могут использоваться совместно, региональные метаданные сохраняются
Немецкий, итальянский, русскийde-DE it-IT ru-RUИспользуется согласно текущим предложениям сеанса
Испанский (Испания и Латинская Америка)es-ES es-USРегиональный ID продукта равен es-US
Французский (Франция и Канада)fr-FR fr-CAРегиональные ID не объединяются
Португальский (Португалия и Бразилия)pt-PT pt-BRКаталог и региональные соглашения сохраняются отдельно
Нидерланды, Дания, Норвегия, Финляндия, Швецияnl-NL da-DK nb-NO fi-FI sv-SEНорвежский — Bokmål
Японский, корейскийja-JP ko-KRНе разбивать на слова по правилам английских пробелов
Арабский (Саудовская Аравия и ОАЭ)ar-SA ar-AEПояснения интерфейса поддерживают RTL; идентификаторы протокола не инвертируются

Использование каталога ключевых слов

json
{"name":"dfc_manual","arguments":{
  "action":"keywords","locale":"de-DE","names":["<ACTUAL_KEYWORD_ID>"]
}}

Статический каталог ключевых слов dfc_manual содержит только явно перечисленные locale; при опущении используется английская справочная версия — это справочное значение по умолчанию, а не правило разбора языка запросов. Если для регионального варианта статический каталог не предоставлен, получайте фактические предложения через assist текущего сеанса, не выдумывая псевдонимы и результаты отката. Максимум 32 элементов в names за один вызов.

Что не переводится

  • Таблицы, столбцы, значения перечислений, имена клиентов, имена формул и прочие фактические строки модели.
  • Имена инструментов, action, scope, поля Schema, коды ошибок и значения состояний.
  • ID ресурсов, хеши, opaque locator и ссылки, выданные сервером.

Например, вопрос на немецком языке может обращаться к столбцу с китайским отображаемым именем «销售金额». Замена его на немецкое имя столбца создала бы другой идентификатор, а не перевод интерфейса. После смены языка заново инициализируйте или обновите сеанс по исходному протоколу и заново получите предложения и кандидатов устранения неоднозначности.

Глава 14

Объединённый анализ и интерактивные результаты

В аналитических инструментах с открытыми условиями сохраняйте состояние авторизации, версии, ветвей и доказательств.

dfc_analysis_* управляется через datafocus.mcp.analysis.tools.enabled. Структурированная часть по-прежнему использует авторитетный запрос Search и текущую строковую стратегию; для части с документами заново получите полный оригинал под текущим ACL. Это не открытые SQL, точки внедрения произвольных инструкций или произвольных фильтров.

ИнструментНазначениеНеобходимые координаты
dfc_analysis_askЗадать аналитический вопрос на естественном языкеontologyId question, необязательный language sessionId
dfc_analysis_result_getЧтение ранее возвращённого результатаontologyId sessionId resultId
dfc_analysis_refineПродолжение или изменение на основе последнего полного результатаИсходный результат expectedRevision и стабильный идемпотентный ключ
dfc_analysis_pageПолучение одной страницы серверной ветвиИсходная ветвь и версия результата pageNo pageSize
dfc_analysis_cancelОтмена ещё выполняющегося результатаИсходный сеанс и результат
dfc_analysis_closeОсвобождение сеанса в нерабочем состоянииИсходный сеанс

Запуск анализа

json
{"name":"dfc_analysis_ask","arguments":{
  "ontologyId":"<ONTOLOGY_ID>",
  "question":"按区域分析已完成订单销售金额,并引用退货统计口径",
  "language":"zh-CN"
}}
  1. Прочитайте возвращённые sessionId, resultId, статус и revision; при необходимости продолжайте чтение исходного результата.
  2. Проверяйте статус, полноту, строковую стратегию и источник каждой структурной ветви по отдельности; завершение одной ветви не означает полноту всего анализа.
  3. Проверьте документальные доказательства, реестр фактов, квалификацию цитирования и ограничения. Сгенерированный моделью текст не может самостоятельно повысить квалификацию доказательств.
  4. Для продолжения опирайтесь на последний полный результат и передавайте expectedRevision; при повторной попытке того же изменения повторно используйте тот же идемпотентный ключ.
  5. Перед закрытием убедитесь, что сеанс больше не работает; отмена и закрытие — разные действия.

Управляемая фильтрация и разбиение на страницы

filter_patch использует предоставленные сервером branchId, fieldRef, valueRef и допустимые операторы; текущий типизированный фильтр объявляет только EQ. Запрещается заменять непрозрачные ссылки исходными SQL, tableId, columnId или самодельным деревом фильтров на стороне клиента. Постраничный параметр pageNo начинается с 1, максимум 10000; pageSize — максимум 100.

Рисунок A7. Привязка ветвей, версий и постраничной навигации; после изменения источника или версии следует выполнить повторный запрос для получения новой позиции. Иллюстрация.

Подсказки о возможностях и поведение

Аннотации инструментов (annotations) являются подсказками для клиента, а не безопасностной авторизацией. Некоторые универсальные шаблоны используют readOnlyHint, что не заменяет оценку фактического действия; отмена, закрытие и создание отчетов изменяют соответствующее рабочее состояние. Всегда выполняйте действия в соответствии с семантикой инструмента, целями пользователя и правами доступа на стороне сервера.

Глава 15

Стойкие визуальные отчеты и MCP Apps

Создавайте восстанавливаемые отчеты и читайте их результаты и интерактивный интерфейс согласно текущим правам доступа.

dfc_report_* управляется через datafocus.mcp.analysis.report-tools.enabled и требует metadata и область table query. Это отличается от внутрипроцессных сеансов Search: отчеты используют постоянный reportId; постоянство не означает, что проверка прав больше не выполняется.

json
{"name":"dfc_report_create","arguments":{
  "ontologyId":"<ONTOLOGY_ID>","goal":"比较区域与类别销售表现并核对口径",
  "title":"零售经营分析","language":"zh-CN",
  "idempotencyKey":"retail-report-20261019-01"
}}
{"name":"dfc_report_status","arguments":{
  "ontologyId":"<ONTOLOGY_ID>","reportId":"<REPORT_ID>"
}}

Рабочий процесс

  1. При создании используйте стабильный idempotencyKey длиной от 8 до 128 поддерживаемых символов.
  2. Сохраните reportId, опрашивайте status и проверяйте фактические состояния: завершено, сбой, частично завершено или отменено.
  3. При чтении результатов проверяйте структурированные ветви, визуализации, источники фактов, ссылки на документы и полноту.
  4. Для отмены незавершенного отчета используйте исходный reportId; не создавайте другой отчет вместо отмены.
  5. После сетевого тайм-аута сначала прочитайте состояние исходного отчета; повторная отправка с исходным идемпотентным ключом должна сохранять то же бизнес-намерение.

MCP Apps

Клиенты с поддержкой UI-расширений считывают страницы отчетов через _meta инструмента и фактическое обнаружение ресурсов. Стойкая страница отчета для r56 — ui://datafocus/analysis-report/v16/index.html, интерактивный анализ использует соответствующие ссылки на серверные ресурсы; клиент не должен жестко кодировать значения взамен возвращаемых инструментом. Без UI-расширения структурированные результаты по-прежнему доступны для чтения.

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

При чтении отчета повторно проверяются Grant, онтология, привязка Origin запроса и текущие права доступа к таблице. Межисточниковая интеграция в браузере должна использовать одобренные фактические источники; клиент не обходит привязку через подделку Origin. Старый reportId не является долгосрочной публичной ссылкой и не является учетными данными для доступа между пользователями.

Глава 16

Черновики артефактов, предпросмотр, планы и применение

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

Инструменты артефактов требуют включенной функции authoring, фактического artifact type, соответствующей scope и прав на запись у исходного администратора. Типы по умолчанию настроены как CONTROL_PANEL_SPEC и VIEW_SPEC; другие формы, источники HTTP или скриптовые типы дополнительно контролируются отдельной конфигурацией. У Flash нет AutoML, поэтому связанные типы не перечисляются как доступные артефакты в этом выпуске.

Рисунок A8. Управляемая последовательность: контекст, кандидат, предпросмотр, план, утверждение и применение. Иллюстрация.
  1. dfc_authoring_capabilities считывает контракты и действия, доступные текущему Grant.
  2. dfc_artifact_context получает ограниченный контекст, contractVersion, contextHash, baseArtifactHash и baseArtifactVersion.
  3. На стороне клиента генерируйте кандидатов на основе реальных контрактов, не выполняя содержащийся в них код.
  4. dfc_artifact_submit отправляет исходный контекст и кандидата, сохраняя instruction неизменным, и использует стабильный clientRequestId.
  5. Читайте proposalId, candidateHash, контрольные суммы и предпросмотр; при фактических ошибках исправляйте кандидата, не подделывая статус прохождения на стороне сервера.
  6. Когда требуется повторный предпросмотр, используйте dfc_artifact_preview и тот же хеш кандидата.
  7. dfc_artifact_plan создает неизменяемый план, используя реального кандидата, целевую версию и идемпотентный ключ.
  8. Обрабатывайте утверждение в соответствии с исходным интерактивным процессом или уже авторизованной политикой, затем dfc_artifact_apply; только квитанция APPLIED подтверждает фактическое применение.

Запрос минимального контекста

json
{"name":"dfc_artifact_context","arguments":{
  "artifactType":"CONTROL_PANEL_SPEC",
  "ontologyId":"<ONTOLOGY_ID>",
  "instruction":"为当前授权销售指标建立区域比较面板"
}}

VIEW_SPEC использует текущую авторизованную projectId; при редактировании существующего артефакта используйте фактический artifactId. Поля variables, previewInput, viewport и другие предоставляются в соответствии с возвращенным контрактом, не придумывайте внутреннюю структуру кандидата.

Параллелизм и повторные попытки

План привязан к целевой версии, хешу кандидата и идемпотентному ключу. После изменения цели старый план не может быть применен; перечитайте контекст и обработайте фактический конфликт. Тайм-аут транспорта не доказывает сбой: сначала с помощью dfc_artifact_status запросите исходный proposalId или planId. READY — это не APPLIED.

Утверждение и автоматическая политика

Универсальные планы артефактов требуют исходного ручного утверждения. Планы, соответствующие политике автоматической публикации онтологии, обрабатываются как approvalMode и не требуют от пользователя подписания придуманного агентом утверждения. approvalToken — это материал, выпущенный сервером, и не может быть заменен строкой, написанной агентом; фактический inputSchema и квитанция плана определяют обязательные поля.

Глава 17

Контракты создания кандидатов онтологии и публикации

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

Создание кандидата

Контейнер онтологии должен уже существовать и находиться внутри Grant. Используйте dfc_ontology_table_schema для проверки текущих полей структурированного источника и отпечатка v4 Binding; поля могут быть предоставлены только через sourceField автоматического обнаружения типа. Явная декларация DECIMAL требует текущей точности и количества десятичных знаков; другие типы не содержат этих двух полей.

json
{"name":"dfc_ontology_table_schema","arguments":{
  "ontologyId":"<ONTOLOGY_ID>","sourceAssetRef":"table:<ACTUAL_TABLE_ID>",
  "fields":[{"sourceField":"区域"},{"sourceField":"销售金额"}]
}}

Кандидат и конфигурация публикации

КонтрактНазначениеКлючевые границы
ontology-workspace-create-mcp-submit-v1Создание кандидата из локальной декларацииФактический авторизованный источник. Компиляция на сервере, подтверждения завершения не принимаются
ontology-workspace-create-mcp-submit-v2Смешение локальных и точных опубликованных ссылокПредоставление точного releaseSelections и транзитивных зависимостей замыкания
ontology-publication-mcp-submit-v1 до v3Привязка существующего кандидата к запросу плана публикацииЯвные координаты; цель, источник, утверждение и валидация восстанавливаются сервером
ontology-publication-mcp-submit-v4 до v6Отдельно включенная связанная конфигурация автоматической публикацииИспользуется только при наличии capabilities и фактической декларации schema
ontology-initial-activation-retirement-submit-v1Контролируемые начальные операции активации и вывода из эксплуатацииОтдельный план, новое ручное утверждение и точная область действия

Порядок публикации

  1. Получите текущего кандидата workspaceId, workspaceRevision, candidateHash и фактический источник.
  2. Выберите версию контракта согласно возможностям сервера; отправьте координаты, такие как releases и selection, без полей, заявляющих «утверждено» или «прошло проверку».
  3. Сохраните proposalId, возвращенный submit, и исходный idempotencyKey. submit и MODEL_PLAN — разные этапы одного запроса.
  4. Вызовите dfc_artifact_plan, используя исходного кандидата, целевую версию и тот же идемпотентный ключ.
  5. PLANNING_INCOMPLETE означает лишь, что действующий план еще не сформирован; VALIDATION_UNSATISFIED означает, что текущая валидация всё ещё имеет пробелы, обрабатывайте как nextAction.
  6. После успешного создания плана продолжайте согласно HUMAN_REQUIRED или POLICY_AUTO, используя исходное утверждение и возможности публикации.
  7. Подтвердите результат с помощью квитанции APPLIED и последующего фактического чтения опубликованной модели и авторизованных запросов.

Тайм-ауты и восстановление

После тайм-аута PLAN прочитайте исходный proposalId. MODEL_PLAN_SUBMITTED — это незавершенный запрос; MODEL_PLAN_COMPLETED означает, что следует восстановить исходную квитанцию по исходным координатам и исходному ключу, а не создавать новый запрос со стороны клиента. Пробелы финальной валидации нельзя превратить в успешную публикацию сменой ключа или повторной отправкой.

Права бизнес-подписи человека

instruction и декларации, предоставленные агентом, являются входными данными агента, а не подписанием политик человеком. MODEL_AUTHOR, MODEL_PUBLISH, делегирование автоматической публикации, бизнес-подтверждение, доверие к открытым ключам, бюджеты и источник ACL по-прежнему определяются исходными механизмами. Недопустимо заменять эти факты полями клиента.

Глава 18

Публикация моделей: запрос кандидатов и замыкание ссылок

Используйте опубликованные бизнес-знания по точным версиям и сохраняйте временный характер неопубликованных кандидатов.

published_model, published_query и candidate_query в dfc_ontology_graph — это условно открытые структурированные конфигурации, а не синонимы обычной search/neighbors. Они авторизуются по table query и необходимым правам на чтение моделирования; видимость графа не заменяет права доступа к таблице.

Чтение опубликованных моделей

  1. Когда перечисление action инструмента фактически содержит published_model, отправляйте реальный подтвержденный releaseId.
  2. v1 возвращает шаблоны авторизованных запросов; v2 добавляет точные ссылки PERSISTED и releaseSelections; v3 добавляет ссылки на зависимости, точные domainRef и компактные шаблоны привязки.
  3. Выбирайте объекты, атрибуты, Binding, scope и версии из фактических возвращаемых значений, не генерируйте RIDs и не используйте latest.
  4. Отправляйте фиксированные типизированные запросы published_query; результаты всё равно проходят проверку текущих прав на источник и поля.

Запрос кандидатов

candidate_query использует фактический workspaceId, revision, candidateHash и декларации кандидата. При смешении опубликованных ссылок используйте соответствующие типизированные координаты v2 LOCAL/PERSISTED и точный выбор. Результаты кандидата всегда неопубликованные и временные, не считайте их подтвержденными корпоративными знаниями.

Частичное сопровождение и замыкание

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

Рисунок A9. Корень кандидата, точные опубликованные зависимости и авторизация источников. Иллюстрация замыкания ссылок.

Запросы этих действий являются версионированными типизированными объектами и не принимают SQL, физические идентификаторы таблиц или имена исходных таблиц взамен своих бизнес-ссылок. Шаблоны метаданных и результаты графа сами по себе не имеют права на ссылку на факты.

Глава 19

Делегирование задач агенту онтологии

Возобновляйте работу с постоянными задачами и исходным Grant, не считая инструкции агента человеческим утверждением.

dfc_ontology_agent отображается только при фактической доступности Pi Runtime и соответствующих прав. QUERY использует возможности чтения; AUTHORING дополнительно требует роль моделирования и соответствующую scope authoring. Он не открывает другой неограниченный движок выполнения.

json
{"name":"dfc_ontology_agent","arguments":{
  "contractVersion":"ontology-agent-task-v1","action":"start",
  "ontologyId":"<ONTOLOGY_ID>","mode":"QUERY",
  "instruction":"列出当前可查询的表,并说明各表用途",
  "idempotencyKey":"retail-discovery-01"
}}
{"name":"dfc_ontology_agent","arguments":{
  "contractVersion":"ontology-agent-task-v1","action":"status",
  "ontologyId":"<ONTOLOGY_ID>","runId":"<RUN_ID>"
}}

Строгий набор параметров

start использует contractVersion, action, ontologyId, mode, instruction, idempotencyKey; status/cancel использует contractVersion, action, ontologyId, runId. Сервер проверяет точный набор полей по action. instruction — максимум 16000 символов; ключ — от 1 до 128 поддерживаемых символов, первый символ — буква или цифра.

Восстановление и отмена

  1. Сохраняйте исходные runId, Grant, mode и идемпотентный ключ.
  2. Тот же ключ и та же instruction восстанавливают тот же run, не отправляйте другую задачу; тот же ключ с другой instruction отклоняется.
  3. status запрашивает состояние исходной задачи. После завершения всё равно проверяйте её запросы к таблицам, свидетельства или квитанции публикации.
  4. Для отмены используйте исходный runId; результат подтверждайте фактическим состоянием задачи.

Завершение run не является квитанцией публикации модели. Задача публикации по-прежнему подтверждается через состояние исходного артефакта и проверки источников; QUERY не дает подразумеваемых прав на запись или публикацию.

Глава 20

Рабочая область бизнес-систем MCP

Запрашивайте записи на основе опубликованных бизнес-контрактов и выполняйте команды через исходный ActionPlan.

/mcp/business использует отдельный protected resource и выбор бизнес-системы; нельзя повторно использовать Grant онтологии вместо бизнес-авторизации. Бизнес-система должна быть опубликована, доступна для вызова агентом, соответствовать исходной политике безопасности, а у текущего пользователя должны быть фактические роли и возможности среды выполнения.

ScopeИнструментГраницы
business-system:discoverdfb_systems dfb_system_describeОбнаружение только авторизованных и в данный момент вызываемых систем
business-system:readdfb_query dfb_record dfb_work_items dfb_action_statusЧтение записей текущим пользователем и его собственные планы
business-system:plandfb_action_planТолько создание неизменяемого плана, без выполнения
business-system:executedfb_action_executeОтдельная явная авторизация, выполнение с учетом рисков и утверждений
  1. dfb_systems обнаруживает авторизованные системы.
  2. dfb_system_describe считывает текущие опубликованные контракты, releaseId и все хеши, запросы и команды.
  3. dfb_query использует опубликованный queryKey, при необходимости указывая objectKey, state, page и pageSize. Это не произвольный SQL.
  4. dfb_record и dfb_work_items считывают текущие разрешенные записи и задачи.
  5. Перед выполнением с помощью dfb_action_plan предоставьте фактические releaseId, releaseHash, canonicalIrHash, agentManifestHash, commandType, planIdempotencyKey и payload контракта.
  6. Проверяйте riskClass, requiresApproval и status; при затрагивании целевых записей сохраняйте expectedRecordVersion.
  7. dfb_action_execute выполняет только планы, принадлежащие текущему подключению и находящиеся в состоянии готовности; токены утверждений, требуемые вручную, выпускаются DataFocus.
  8. После сбоя или тайм-аута dfb_action_status восстанавливает исходный план; повторные попытки сохраняют исходную идемпотентную семантику.
Рисунок A10. Опубликованные контракты, планы, утверждения и выполнение действий. Иллюстрация.

Привязка подключений и версий

План привязан к стабильному изолированному идентификатору текущего Grant. После обновления Access Token планы того же подключения остаются обрабатываемыми, а другое подключение OAuth не может их перехватить. При выполнении повторно проверяются опубликованная версия, хеши IR/manifest, версия целевой записи, срок действия плана, идемпотентность и утверждение. Allowlist OAuth не обходит бизнес-управление.

Глава 21

Ввод бизнес-знаний и вопросы на подтверждение

Регистрируйте бизнес-ввод при открытии соответствующих производственных обработчиков, сохраняя границу человеческого подтверждения.

Следующие четыре инструмента добавляются общим контроллером MCP в зависимости от установленных обработчиков и текущей scope. Они не всегда присутствуют в базовом каталоге. Наличие декларации Schema не означает, что для экземпляра настроены обработчики, бюджеты или права; сначала проверьте tools/list.

ИнструментНазначениеНе создаваемые авторизации или эффекты
dfc_ontology_knowledge_input_proposeРегистрация исходного бизнес-ввода для существующего рабочего пространстваНе генерирует вопросы для подтверждения, не утверждает, не публикует
dfc_ontology_knowledge_input_previewВременный предпросмотр черновиков вопросов из исходного вводаНе сохраняет, не подтверждает, не формирует производственную квитанцию
dfc_ontology_knowledge_question_submitСохранение созданных автором и не подтвержденных вопросовНе объединяет ответы автоматически, не получает права ответственности или публикации
dfc_ontology_business_scope_initializeЯвная инициализация области потребителя бизнес-системыНе публиковать, не активировать, не предоставлять доступ к источнику

Ввод и предпросмотр

  1. Получите workspaceId, workspaceRevision, localRef и preparationDigest из фактической подготовительной работы.
  2. propose регистрирует бизнес-ввод с исходным контрактом input и стабильным idempotencyKey; один и тот же ключ может соответствовать только одному и тому же вводу.
  3. preview использует идемпотентный ключ исходного ввода и ontologyId; при каждом вызове он возвращает серверную revision и 60-секундное окно, это не подтверждение идемпотентного завершения производства.
  4. Когда требуется сохранить вопрос, question_submit использует новый командный ключ, исходный originalInputKey, явные questionRevision, validFrom, validUntil и expectedRevision; при создании expectedRevision равно null.

Точка подтверждения человеком

knowledgeConfirmationPage, возвращаемый question_submit, — это лишь относительная позиция исходной страницы входа с предзаполненным вопросом. Он не содержит Bearer, не открывает страницу автоматически и не подтверждает знание. QUESTION_STORED_UNCONFIRMED явно указывает, что подтверждение ещё не выполнено; в ответе нельзя писать, что «знание опубликовано».

Инициализация области потребителей

business scope initialize требует одновременно права публикации онтологии и права создателя точной бизнес-системы либо права управления SourceManager. Он использует реальные координаты domainRid, domainRevisionId и businessSystemId; клиент не может подставить произвольные consumerScope или доказательство выполнения. Возвращаемые INITIALIZED и COMPLETED по-прежнему явно содержат published=false и activationAuthorized=false.

Эти запросы также проходят строгую проверку JSON, набора полей, байтов и глубины. Лимит входного запроса — 1 MiB; у отдельных конкретных операций лимиты меньше. Полные схемы ввода и вывода поставляются вместе со справочником инструментов; нельзя применять свободную логику параметров общего оборачивателя MCP к этим строгим контрактам.

Глава 22

Ответы, ошибки и безопасные повторные попытки

Поясняйте ошибки послойно, сохраняя координаты задач и идемпотентную семантику.

УровеньЧто проверяетсяПринцип обработки
Сеть и HTTPОшибки соединения TLS: 401, 403, 400, 404, 405 и т. д.Не воспринимайте неудачный ответ как обычный результат запроса
JSON-RPCerror.code message dataРазличайте проблемы протокола, метода, параметров и авторизации
Инструмент MCPresult.isError и structuredContentДаже при HTTP 200 операция может завершиться неудачей
Бизнес-результатРеальный статус, полнота, причина сбоя nextActionПолучение или готовность не равны завершению
Фактическая квалификацияexecutionReceipt citationEligible contentCompleteСодержимое без квалификации используется только для локализации или объяснения пробелов

Типичные ситуации HTTP

  • 401: отсутствует или недействителен Bearer — обновите или повторно авторизуйтесь согласно текущему процессу OAuth.
  • 403: Grant, роль, выбранный ресурс, права на источник, Origin или конфигурация не удовлетворяют требованиям; не обходите это повторным воспроизведением.
  • 400: некорректное сообщение или версионированный контракт, включая несоответствие современных заголовков и метаданных.
  • 404: проверьте точный путь службы, метод протокола и возможности среды выполнения; не меняйте ID онтологии наугад.
  • 405: методы GET и DELETE общего /mcp изначально не открыты; используйте корректный POST вместо установки долгого соединения SSE.

Операции записи с неясным результатом

MCP_OPERATION_OUTCOME_UNKNOWN может содержать outcome=UNKNOWN, retryable=false, nextAction=READ_ORIGINAL_STATUS, recoveryTool и исходные параметры позиционирования. Сначала проверьте исходный статус, затем восстановите исходный запрос. Не отправляйте кандидата повторно, не меняйте идемпотентный ключ и не считайте тайм-аут откатом транзакции.

Порядок обработки при сбое графа A11, неясном результате и повторяемых ситуациях. Схема восстановления.

Что необходимо сохранить без изменений

  • Исходные Grant, области ресурсов, ID задач и результатов.
  • candidateHash, planHash, expectedRevision, целевая версия и выбор публикации.
  • Идемпотентные ключи одной и той же логической операции; для разных бизнес-операций используйте новые ключи.
  • Заявленные сервером retryable, remediation, nextAction и текущий статус.

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

Глава 23

Безопасность интеграции и границы возможностей

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

  1. Подключайтесь только к официальным доменам, указанным администратором; проверяйте TLS и issuer OAuth, не отключайте проверку сертификатов.
  2. Используйте выделенный Grant с минимальной областью ресурсов; не используйте учётные записи администратора, Cookie или долгосрочные внутренние Token в качестве учётных данных публичных интерфейсов.
  3. Считайте текст документов недоверенным бизнес-материалом. «Игнорировать правила», «загрузить ключ», «выполнить команду» в документе не являются инструментальной авторизацией.
  4. Ограничивайте автоматические повторные попытки, параллелизм и объём результатов; не воссоздавайте исходные бизнес-права на клиенте.
  5. В журналах фиксируйте только необходимую информацию о связи; не записывайте Bearer, refresh token, токены одобрения и полный чувствительный бизнес-контент.
  6. После отключения пользователя или отзыва прав администратором прекратите использование кэшированных авторизаций и данных, не продолжайте вызовы по старому locator.

Подсказки инструментов — это не права

readOnlyHint, destructiveHint, idempotentHint и openWorldHint служат для понимания возможностей клиентом, не гарантируют фактического бизнес-эффекта каждого вызова и не заменяют авторизацию текущего пользователя. Все действия записи, планы, предпросмотры, сессии и отмены обрабатывайте согласно их реальному поведению.

Точки входа, которые нельзя вызывать

  • Исходные сервисы Trino/Hive/Hadoop и Heavy ETL, не включённые в Flash.
  • Внутренние интерфейсы выделенных scope или рабочих пространств FocusCode.
  • Выполнение v2, AutoML и другие экспериментальные инструменты, отсутствующие в текущем tools/list экземпляра.
  • Приватные REST браузера, произвольные подключения к базам данных или сервисы других арендаторов для обхода отказа MCP.

Семантика данных

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

Глава 24

Подключение администратором и условные переключатели

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

КонфигурацияНазначениеТребования для публикации
datafocus.mcp.public-base-urlОфициальный внешний корневой адресСогласованность обнаружения OAuth, issuer, обратных вызовов и обратного прокси
datafocus.mcp.allowed-originsДополнительное одобрение источников браузераТочная конфигурация без расширения до произвольных источников
datafocus.mcp.oauth.route-proof-secretВыделенный секрет сервера для подтверждения маршрутизации графаХранится отдельно, не использовать Bearer в качестве ключа
datafocus.mcp.analysis.tools.enabledИнструменты интерактивного анализаРеальная доступность сопутствующих служб данных, знаний и прав
datafocus.mcp.analysis.report-tools.enabledИнструменты персистентных отчётовДоступность сопутствующего хранилища, worker и цепочки восстановления
datafocus.mcp.analysis.apps.enabledОтображение MCP AppsЗаявленная поддержка клиентом и проверка возвращаемого _meta
datafocus.mcp.authoring.enabledКонтракты черновиков и моделированияСохранение исходных прав администратора и ресурсов
datafocus.mcp.authoring.apply-enabledВозможность применения артефактовНеизменяемый план, исходные одобрения и повторная проверка текущего статуса
datafocus.mcp.ontology-published-query-enabledОпубликованные модели и запросыРеально отправленная версия и авторизация источника
datafocus.mcp.ontology-candidate-query-enabledКандидаты структурированных запросовВладение кандидатом, точная версия и право чтения
datafocus.mcp.authoring.ontology-auto-publication-enabledАвторизации, связанные с автоматическим делегированием публикацииДействующая исходная политика, доверие к публичному ключу, бюджет и право публикации

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

Пограничный прокси

Сохраняйте Authorization, Content-Type, MCP-Protocol-Version, Mcp-Method, Mcp-Name и одобренный Origin. Настраивайте тело запроса, тайм-ауты и TLS согласно требованиям фактических служб; не перенаправляйте публичный /mcp на административный порт или другой 产品.

Чек-лист запуска

  • Статусы анонимного обнаружения и защищённых вызовов соответствуют ожиданиям.
  • Обычные пользователи обнаруживают только свою область авторизации; после отзыва прав последующие запросы отклоняются.
  • Search нативные сессии, SQL, исходные тексты и необязательные отчёты имеют реальные результаты.
  • Одобрения для записи и публикации, а также идемпотентное восстановление сохраняют исходное поведение.
  • Журналы и публичная документация не содержат приватных ключей, Token, Cookie, паролей и внутренних данных клиентов.
Глава 25

Работающий клиент и примеры вызовов

Проверяйте сообщения с помощью сопутствующего минимального клиента, не обходя OAuth или текущую авторизацию.

examples/flash_mcp.py — это минимальный протокольный клиент, использующий только стандартную библиотеку Python. Он не выполняет вход, не одобряет за других, не вызывает невидимые инструменты автоматически, поддерживает современные и старые протоколы и завершает работу по уровням согласно HTTP, JSON-RPC и ошибкам инструментов. Token передаётся через переменные окружения процесса и не записывается в скрипты или файлы документации.

bash
export FLASH_BASE_URL='https://flash.example.com'
read -r -s -p 'Access token: ' FLASH_ACCESS_TOKEN
export FLASH_ACCESS_TOKEN

python3 examples/flash_mcp.py discover
python3 examples/flash_mcp.py tools
python3 examples/flash_mcp.py call dfc_ontologies --arguments '{"page":1,"pageSize":20}'

unset FLASH_ACCESS_TOKEN

Чтение и запросы

bash
python3 examples/flash_mcp.py call dfc_ontology_resources \
  --arguments-file examples/requests/ontology-resources.json

python3 examples/flash_mcp.py call dfc_table \
  --arguments-file examples/requests/table-detail.json

python3 examples/flash_mcp.py call dfc_table \
  --arguments-file examples/requests/top3-query.json

Сначала замените заполнители ONTOLOGY_ID, TABLE_RESOURCE_ID и т. д. в файле запроса на реальные значения, возвращённые текущей авторизацией. При встрече с заполнителем клиент откажется выполнять. Пример SQL требует, чтобы сопутствующий CSV был импортирован с исходными именами столбцов; без соответствующей схемы отправлять напрямую нельзя.

Другие сценарии

  • Бизнес-вход: используйте --endpoint business, чтобы заново получить Grant, ориентированный на /mcp/business.
  • Старые клиенты: выберите --protocol 2025-11-25, сначала выполните initialize, затем вызывайте по тому же протоколу.
  • Встроенная справка: используйте resources или read-resource для чтения фактического URI.
  • Автономная самопроверка: --self-test проверяет построение современных заголовков и метаданных; Token не нужен, сервер продукта не запрашивается.

Границы примеров

Клиент — это отправная точка протокольного подключения, он не генерирует кандидатов моделирования, не сохраняет вопросы-ответы и не выполняет публикацию автоматически. Он выводит исходный JSON, чтобы агент верхнего уровня мог сверить бизнес-статус; не обещайте пользователю завершение запроса, отчёта или публикации только по коду выхода процесса.

Глава 26

Встраивание интерфейса диалога онтологии

Встройте страницу человеческого диалога в бизнес-фронтенд, сохраняя границы безопасности входа и браузера.

html
<iframe
  title="OT Flash ontology agent"
  src="https://flash.example.com/10001/#/embed/ontology-agent/1001"
  style="width:100%;height:760px;border:0"
  referrerpolicy="strict-origin-when-cross-origin">
</iframe>

10001 — примерный ID арендатора, 1001 — примерный ID онтологии; при использовании замените на реальные авторизованные координаты. Одна онтология может быть указана через path или поддерживаемый query; режим all предоставляет @ для выбора онтологий, доступных текущему пользователю. skillId только прозрачно передаётся; на этом основании нельзя утверждать, что оркестрация навыков уже доступна для выполнения.

Аутентификация и домены

Встроенная страница зависит от реального состояния входа DataFocus и проверяет /uc/status. Кросс-сайтовые Cookie, SSO, CSP frame-ancestors и конфигурация шлюза влияют на встраивание. Она не принимает MCP Bearer, вставленный в URL, как канал без входа; нереализованные внешние ссылки outside нельзя собирать самостоятельно вопреки проектному замыслу.

Различие между MCP и iframe

СпособПользовательИдентификация и результат
Remote MCPВнешняя интеграция агента или сервисаOAuth Grant и структурированные подтверждения инструментов
iframe-диалог онтологииКонечный пользователь (человек)Исходное состояние входа и интерфейс диалога
MCP AppsРасширяемый клиент MCPУправляемые ресурсы и текущие результаты инструментов, а не публичная замена входа через iframe
Глава 27

Чек-лист приёмочной проверки интеграции

Подтвердите полную бизнес-цепочку на реальном экземпляре, а не только то, что интерфейсы возвращают 200.

  1. Обнаружение: получите фактически поддерживаемые версии, текущий каталог инструментов и встроенные ресурсы.
  2. Авторизация: обычные пользователи видят только разрешённые онтологии и бизнес-системы; операции без scope отклоняются.
  3. Структура таблиц: фактические отображаемые имена, столбцы, типы и права доступа полностью.
  4. SQL: одномерные, многомерные, JOIN, даты, TopN и проверки усечения соответствуют фактическим бизнес-правилам.
  5. Знания: позиционирование, полный исходный текст и право на цитирование фактов согласованы; смешанные вопросы опираются одновременно на данные и документы.
  6. Search: модель, init, предложения, результаты, закрытие и проверки целостности буфера пройдены.
  7. Опциональные анализ и отчёты: реальное состояние нескольких ветвей, постраничный переход, изменение прав и сохранение исходного поведения при отмене.
  8. Опциональное моделирование: кандидат, план, исходное утверждение, фактическое применение и запрос версии проверяются поэтапно.
  9. Бизнес-действия: хеш публикации, целевая версия, утверждение, идемпотентность и изоляция между Grant проверены.
  10. Восстановление: после сетевого тайм-аута состояние восстанавливается, после обновления источника старое позиционирование перестаёт действовать и используется новый запрос.

Запись результатов

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

Глава 28

Нормативные ресурсы и сопровождение

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

РесурсыСодержание
reference/mcp-tool-catalog.json32 схемы декларируемых входных данных со стороны онтологии и 8 со стороны бизнеса; часть инструментов содержит исходные схемы выходных данных
reference/locales.json21 опциональный параметр и 24 совместимых локали с терминами UI
reference/search-keywords.json17 статических каталогов ключевых слов с явно указанными локалями
reference/analysis-contract-manifest.jsonОграничения версий, связанные с анализом, ветвями, фактами, квитанциями и отчётами
examples/Синтетические CSV, описание правил, Top3 SQL, ожидаемые результаты и минимальный клиент протокола

Встроенные справочные ресурсы

text
datafocus://manuals/etl-formulas/v1
datafocus://manuals/search-keyword-queries/v1
datafocus://manuals/etl-functions/v1
datafocus://manuals/search-keywords/v1

resources/list и resources/read требуют, чтобы текущий пользователь обладал хотя бы одним из соответствующих прав на чтение: metadata, operate для search или operate для ETL. Документация ETL является статическим межпродуктовым справочником; исполняемые возможности Flash по-прежнему ограничены только явно указанным в отчётах объёмом.

Справочник внешнего протокола

По протоколу MCP и вопросам авторизации обращайтесь к официальным спецификациям: https://modelcontextprotocol.io/specification/2026-07-28/basic и https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization. Конечные точки, инструменты и условное поведение данного продукта определяются реализацией r56 и фактически обнаруженными на экземпляре результатами; общую поддержку протокола нельзя приравнивать к наличию на сервере всех опциональных возможностей.

Обновление и сопровождение

При обновлении заново выполняйте обнаружение инструментов и версий, сравнивайте входные схемы, выходные контракты и конфигурацию; старые Grant автоматически не получают новых scope. Сохраняйте привязку ссылок, кэша и квитанций к версии источника; после подтверждения несовместимых изменений заново получайте контекст и не применяйте старое позиционирование к новому бизнес-состоянию.

Глава 29

Справочник параметров инструментов: базовые и нативные Search

Полные имена и поля ввода, сгруппированные по инструментам.

Приведённые ниже таблицы — справочник по полям ввода текущих инструментов r56. Полные вложенные типы, oneOf, условно обязательные поля, ограничения схемы и часть схем выходных данных см. в reference/mcp-tool-catalog.json; перед финальной отправкой всё равно считайте tools/list текущего Grant. Пометка «опционально» в таблице не отменяет внутренних требований валидации действия.

dfc_manual

ПараметрТипТребованиеЗначение и диапазон
namesarrayОпционально или условно обязательноИскомые явные имена, не более 32 за один вызов. maxItems: 32
actionstringОпционально или условно обязательноИмя операции. Используется в соответствии с текущим перечислением и параметрами соответствующего действия. enum: list, read, keywords, functions, etl_requests
localestringОпционально или условно обязательноЯвная статическая справочная локаль каталога, а не язык запросов по умолчанию.
uristringОпционально или условно обязательноВстроенные ресурсы URI, перечисленные текущим инструментом. enum: datafocus://manuals/etl-formulas/v1, datafocus://manuals/search-keyword-queries/v1, datafocus://manuals/etl-functions/v1, datafocus://manuals/search-keywords/v1

dfc_search

ПараметрТипТребованиеЗначение и диапазон
dataobjectОпционально или условно обязательноПолезная нагрузка исходного действия; см. таблицу обнаружения возможностей и полей действий.
actionstringОбязательноИмя операции. Используется в соответствии с текущим перечислением и параметрами соответствующего действия. enum: capabilities, model_create, model_read, open, request, poll, cancel, close

dfc_etl

ПараметрТипТребованиеЗначение и диапазон
dataobjectОпционально или условно обязательноПолезная нагрузка исходного действия; см. таблицу обнаружения возможностей и полей действий.
actionstringОбязательноИмя операции. Используется в соответствии с текущим перечислением и параметрами соответствующего действия. enum: capabilities

dfc_ontologies

ПараметрТипТребованиеЗначение и диапазон
pageSizeintegerОпционально или условно обязательноКоличество записей на странице; согласно лимиту схемы. minimum: 1; maximum: 100
pageintegerОпционально или условно обязательноНомер страницы, начиная с 1. minimum: 1

dfc_ontology_resources

ПараметрТипТребованиеЗначение и диапазон
resourceTypesarrayОпционально или условно обязательноНабор типов возвращаемых ресурсов.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
pageSizeintegerОпционально или условно обязательноКоличество записей на странице; согласно лимиту схемы. minimum: 1; maximum: 100
pageintegerОпционально или условно обязательноНомер страницы, начиная с 1. minimum: 1
Глава 30

Справочник параметров инструментов: таблицы, граф и знания

Полные имена и поля ввода, сгруппированные по инструментам.

Приведённые ниже таблицы — справочник по полям ввода текущих инструментов r56. Полные вложенные типы, oneOf, условно обязательные поля, ограничения схемы и часть схем выходных данных см. в reference/mcp-tool-catalog.json; перед финальной отправкой всё равно считайте tools/list текущего Grant. Пометка «опционально» в таблице не отменяет внутренних требований валидации действия.

dfc_ontology_graph

ПараметрТипТребованиеЗначение и диапазон
relationTypesarrayОпционально или условно обязательноФильтр по типу связи.
depthintegerОпционально или условно обязательноГлубина обхода соседей. minimum: 1; maximum: 3
sourceTypesarrayОпционально или условно обязательноФильтр по типу источника.
queryobjectОпционально или условно обязательноТекст запроса или точный версионированный объект запроса, соответствующий action.
limitintegerОпционально или условно обязательноВерхний предел количества возвращаемых результатов. minimum: 1; maximum: 100
actionstringОбязательноИмя операции. Используется в соответствии с текущим перечислением и параметрами соответствующего действия. enum: search, neighbors, published_model, published_query, candidate_query
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
nodeKeystringОпционально или условно обязательноКлюч узла, скопированный из фактических результатов графа.
keywordstringОпционально или условно обязательноКлючевые слова позиционирования графа, не синтаксис вопросов по ключевым словам.
nodeTypesarrayОпционально или условно обязательноФильтр по типу узла.

dfc_ontology_query

ПараметрТипТребованиеЗначение и диапазон
routeLocatorsarrayОпционально или условно обязательноПолная копия типизированного позиционирования маршрута, выданного сервером. maxItems: 20
topKintegerОпционально или условно обязательноВерхний предел возвращаемых кандидатов; не гарантирует полноту покрытия. minimum: 1; maximum: 20
queryModestringОпционально или условно обязательноРежим поиска доказательств, выбираемый по перечислению инструмента. enum: vector, hybrid, graph
fanoutPlanobjectОпционально или условно обязательноПлан ограниченного поиска по ветвям, согласно вложенной схеме.
structuredPlanobjectОпционально или условно обязательноПлан, привязанный к серверному контракту полной таблицы документов, не SQL.
knowledgeIdsarrayОпционально или условно обязательноID базы знаний из фактического knowledgeBindings.
querystringОбязательноТекст запроса или точный версионированный объект запроса, соответствующий action.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.

dfc_knowledge_search

ПараметрТипТребованиеЗначение и диапазон
topKintegerОпционально или условно обязательноВерхний предел возвращаемых кандидатов; не гарантирует полноту покрытия. minimum: 1; maximum: 20
minScorenumberОпционально или условно обязательноМинимальный балл совпадения. minimum: 0; maximum: 1
knowledgeIdsarrayОпционально или условно обязательноID базы знаний из фактического knowledgeBindings.
querystringОбязательноТекст запроса или точный версионированный объект запроса, соответствующий action.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
assetIdsarrayОпционально или условно обязательноРазрешённые в данный момент ID документов-активов.
retrievalStrategystringОпционально или условно обязательноФактически поддерживаемая стратегия поиска. enum: auto, hybrid_stage2

dfc_knowledge_detail

ПараметрТипТребованиеЗначение и диапазон
qdrantIdstring / integerОпционально или условно обязательноИдентификатор индекса, возвращённый при фактическом позиционировании.
pageNointegerОпционально или условно обязательноФактический номер страницы или страницы пагинации.
evidenceIdstringОпционально или условно обязательноID доказательства, возвращённый тем же позиционированием знаний.
actionstringОбязательноИмя операции. Используется в соответствии с текущим перечислением и параметрами соответствующего действия. enum: chunk, document, page_context
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
documentIdstring / integerОпционально или условно обязательноID документа того же позиционирования.
radiusintegerОпционально или условно обязательноДиапазон соседних страниц. minimum: 0; maximum: 3
chunkIdstringОпционально или условно обязательноФактический ID фрагмента того же позиционирования.

dfc_table

ПараметрТипТребованиеЗначение и диапазон
maxRowsintegerОпционально или условно обязательноВерхний предел числа возвращаемых строк; не диапазон ранжирования на клиенте. minimum: 1; maximum: 200
actionstringОбязательноИмя операции. Используется в соответствии с текущим перечислением и параметрами соответствующего действия. enum: detail, query
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
idstringОпционально или условно обязательноРеальный ID ресурса таблицы, не физическое или отображаемое имя.
sqlstringОпционально или условно обязательноДоступное только для чтение Doris SQL в рамках одной онтологии с явными выходными столбцами.
Глава 31

Справочник параметров инструментов: анализ и отчёты

Полные имена и поля ввода, сгруппированные по инструментам.

Приведённые ниже таблицы — справочник по полям ввода текущих инструментов r56. Полные вложенные типы, oneOf, условно обязательные поля, ограничения схемы и часть схем выходных данных см. в reference/mcp-tool-catalog.json; перед финальной отправкой всё равно считайте tools/list текущего Grant. Пометка «опционально» в таблице не отменяет внутренних требований валидации действия.

dfc_analysis_ask

ПараметрТипТребованиеЗначение и диапазон
questionstringОбязательноВопрос на естественном языке или совместимый уточняющий вопрос.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
languagestringОпционально или условно обязательноЯвная локаль ответа или запроса; при отсутствии — согласно правилам соответствующего инструмента.
sessionIdstringОпционально или условно обязательноРеальное позиционирование сессии в рамках того же Grant.

dfc_analysis_refine

ПараметрТипТребованиеЗначение и диапазон
branchIdstringОпционально или условно обязательноСтруктурированное позиционирование ветви, выданное сервером.
resultIdstringОбязательноПозиционирование результатов анализа из исходного ответа.
questionstringОпционально или условно обязательноВопрос на естественном языке или совместимый уточняющий вопрос.
idempotencyKeystringОбязательноСтабильно используемый идемпотентный ключ той же логической операции.
changeobjectОпционально или условно обязательноИзменение на естественном языке или типизированный filter_patch.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
languagestringОпционально или условно обязательноЯвная локаль ответа или запроса; при отсутствии — согласно правилам соответствующего инструмента.
sessionIdstringОбязательноРеальное позиционирование сессии в рамках того же Grant.
expectedRevisionintegerОбязательноПредусловие исходного результата или версии бизнес-заголовка; при создании вопроса может быть null. minimum: 1
visualIdstringОпционально или условно обязательноПозиционирование визуализации, привязанное к ветви.

dfc_analysis_page

ПараметрТипТребованиеЗначение и диапазон
branchIdstringОбязательноСтруктурированное позиционирование ветви, выданное сервером.
resultIdstringОбязательноПозиционирование результатов анализа из исходного ответа.
pageNointegerОбязательноФактический номер страницы или страницы пагинации. minimum: 1; maximum: 10000
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
pageSizeintegerОбязательноКоличество записей на странице; согласно лимиту схемы. minimum: 1; maximum: 100
sessionIdstringОбязательноРеальное позиционирование сессии в рамках того же Grant.
expectedRevisionintegerОбязательноПредусловие исходного результата или версии бизнес-заголовка; при создании вопроса может быть null. minimum: 1

dfc_analysis_result_get

ПараметрТипТребованиеЗначение и диапазон
resultIdstringОбязательноПозиционирование результатов анализа из исходного ответа.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
sessionIdstringОбязательноРеальное позиционирование сессии в рамках того же Grant.

dfc_analysis_cancel

ПараметрТипТребованиеЗначение и диапазон
resultIdstringОбязательноПозиционирование результатов анализа из исходного ответа.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
sessionIdstringОбязательноРеальное позиционирование сессии в рамках того же Grant.

dfc_analysis_close

ПараметрТипТребованиеЗначение и диапазон
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
sessionIdstringОбязательноРеальное позиционирование сессии в рамках того же Grant.

dfc_report_create

ПараметрТипТребованиеЗначение и диапазон
goalstringОбязательноЦель анализа отчёта.
idempotencyKeystringОбязательноСтабильно используемый идемпотентный ключ той же логической операции.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
languagestringОпционально или условно обязательноЯвная локаль ответа или запроса; при отсутствии — согласно правилам соответствующего инструмента.
titlestringОпционально или условно обязательноОпциональный заголовок отчёта.

dfc_report_status

ПараметрТипТребованиеЗначение и диапазон
reportIdstringОбязательноПозиционирование постоянного отчёта текущего Grant.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.

dfc_report_cancel

ПараметрТипТребованиеЗначение и диапазон
reportIdstringОбязательноПозиционирование постоянного отчёта текущего Grant.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
Глава 32

Справочник параметров инструментов: моделирование и исходные задачи

Полные имена и поля ввода, сгруппированные по инструментам.

Приведённые ниже таблицы — справочник по полям ввода текущих инструментов r56. Полные вложенные типы, oneOf, условно обязательные поля, ограничения схемы и часть схем выходных данных см. в reference/mcp-tool-catalog.json; перед финальной отправкой всё равно считайте tools/list текущего Grant. Пометка «опционально» в таблице не отменяет внутренних требований валидации действия.

dfc_ontology_agent

ПараметрТипТребованиеЗначение и диапазон
modestringОпционально или условно обязательноQUERY или AUTHORING, возможности предоставляются по отдельности. enum: QUERY, AUTHORING
instructionstringОпционально или условно обязательноТекст требований пользователя; контекст должен совпадать с отправляемым. maxLength: 16000
idempotencyKeystringОпционально или условно обязательноСтабильно используемый идемпотентный ключ той же логической операции. maxLength: 128
actionstringОбязательноИмя операции. Используется в соответствии с текущим перечислением и параметрами соответствующего действия. enum: start, status, cancel
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
runIdstringОпционально или условно обязательноID исходной задачи той же онтологии и того же Grant.
contractVersionstringОбязательноТочная фактически поддерживаемая версия контракта. enum: ontology-agent-task-v1

dfc_authoring_capabilities

Корневой объект ввода этого инструмента не содержит полей; используйте пустой объект arguments.

dfc_artifact_context

ПараметрТипТребованиеЗначение и диапазон
artifactTypestringОбязательноФактически запущенный тип артефакта или публикации онтологии. enum: CONTROL_PANEL_SPEC, VIEW_SPEC
scopeTypestringОпционально или условно обязательноТип области ресурсов в контракте фактического артефакта.
ontologyIdstringОпционально или условно обязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
projectIdstringОпционально или условно обязательноID текущего авторизованного проекта.
artifactIdstringОпционально или условно обязательноРеальный ID редактируемого существующего артефакта.
instructionstringОбязательноТекст требований пользователя; контекст должен совпадать с отправляемым.
variablesobjectОпционально или условно обязательноОбъект переменных, предоставляемый согласно возвращённому контракту.
previewInputobjectОпционально или условно обязательноОграниченный ввод предпросмотра, предоставляемый согласно контракту.
viewportobjectОпционально или условно обязательноТребуемый исходным контрактом отображаемый viewport.

dfc_ontology_table_schema

ПараметрТипТребованиеЗначение и диапазон
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
sourceAssetRefstringОбязательноЗарегистрированная ссылка на структурированный актив, например table:123.
fieldsarrayОбязательноПоля текущего источника с опциональными явными объявлениями типов. minItems: 1; maxItems: 64

dfc_artifact_preview

ПараметрТипТребованиеЗначение и диапазон
proposalIdstringОбязательноID исходного кандидата, созданного в рамках текущего Grant.
candidateHashstringОбязательноТочный хеш исходного кандидата, выданного сервером.
previewInputobjectОбязательноОграниченный ввод предпросмотра, предоставляемый согласно контракту.

dfc_artifact_status

ПараметрТипТребованиеЗначение и диапазон
proposalIdstringОпционально или условно обязательноID исходного кандидата, созданного в рамках текущего Grant.
planIdstringОпционально или условно обязательноНеизменяемый ID плана применения.

dfc_artifact_plan

ПараметрТипТребованиеЗначение и диапазон
proposalIdstringОбязательноID исходного кандидата, созданного в рамках текущего Grant.
candidateHashstringОбязательноТочный хеш исходного кандидата, выданного сервером.
expectedTargetVersionintegerОбязательноТекущее реальное предусловие целевой версии. minimum: 0
idempotencyKeystringОбязательноСтабильно используемый идемпотентный ключ той же логической операции.

dfc_artifact_apply

ПараметрТипТребованиеЗначение и диапазон
planIdstringОбязательноНеизменяемый ID плана применения.
planHashstringОбязательноХеш, возвращённый исходным планом.
approvalTokenstringОбязательноМатериалы на одобрение, отправленные исходным сервером; самостоятельная генерация запрещена.
idempotencyKeystringОбязательноСтабильно используемый идемпотентный ключ той же логической операции.

dfc_artifact_submit

ПараметрТипТребованиеЗначение и диапазон
Конфигурация 1 / artifactTypestringОбязательноФактически запущенный тип артефакта или публикации онтологии. enum: CONTROL_PANEL_SPEC, VIEW_SPEC
Конфигурация 1 / scopeTypestringОпционально или условно обязательноТип области ресурсов в контракте фактического артефакта.
Конфигурация 1 / ontologyIdstringОпционально или условно обязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
Конфигурация 1 / projectIdstringОпционально или условно обязательноID текущего авторизованного проекта.
Конфигурация 1 / artifactIdstringОпционально или условно обязательноРеальный ID редактируемого существующего артефакта.
Конфигурация 1 / instructionstringОбязательноТекст требований пользователя; контекст должен совпадать с отправляемым.
Конфигурация 1 / variablesobjectОпционально или условно обязательноОбъект переменных, предоставляемый согласно возвращённому контракту.
Конфигурация 1 / previewInputobjectОпционально или условно обязательноОграниченный ввод предпросмотра, предоставляемый согласно контракту.
Конфигурация 1 / viewportobjectОпционально или условно обязательноТребуемый исходным контрактом отображаемый viewport.
Конфигурация 1 / contractVersionstringОбязательноНеобходимо использовать точную версию контракта, фактически поддерживаемую.
Конфигурация 1 / contextHashstringОбязательноПолный хеш контекста, возвращённый context.
Конфигурация 1 / baseArtifactHashstringОбязательноБазовый хеш артефакта, возвращённый context.
Конфигурация 1 / baseArtifactVersionintegerОбязательноБазовая версия, возвращённая context. minimum: 0
Конфигурация 1 / candidateobjectОбязательноКандидат, соответствующий текущему возвращённому контракту.
Конфигурация 1 / clientRequestIdstringОбязательноКлиентский идемпотентный ключ, стабильно используемый для текущего запроса кандидата.
Конфигурация 2 / artifactTypestringОбязательноФактически включённый тип публикации артефакта или онтологии. enum: ONTOLOGY_RELEASE
Конфигурация 2 / contractVersionstringОбязательноНеобходимо использовать точную версию контракта, фактически поддерживаемую. enum: ontology-publication-mcp-submit-v1, ontology-publication-mcp-submit-v2, ontology-publication-mcp-submit-v3, ontology-publication-mcp-submit-v4, ontology-publication-mcp-submit-v5, ontology-publication-mcp-submit-v6
Конфигурация 2 / ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
Конфигурация 2 / candidateHashstringОбязательноТочный хеш исходного кандидата, выданного сервером.
Конфигурация 2 / workspaceIdstringОбязательноФактические координаты рабочего пространства кандидата.
Конфигурация 2 / workspaceRevisionstringОбязательноТочная версия кандидата; latest не используется.
Конфигурация 2 / releasesobjectОбязательноВыбор точной версии согласно контракту публикации онтологии.
Конфигурация 2 / selectionobjectОбязательноПредоставляются только явные координаты бизнес-выбора; подтверждения прав или завершения не предоставляются.
Конфигурация 2 / idempotencyKeystringОбязательноСтабильно используемый идемпотентный ключ той же логической операции.
Конфигурация 3 / Конфигурация 1 / artifactTypestringОбязательноФактически включённый тип публикации артефакта или онтологии. enum: ONTOLOGY_RELEASE
Конфигурация 3 / Конфигурация 1 / contractVersionstringОбязательноНеобходимо использовать точную версию контракта, фактически поддерживаемую. enum: ontology-workspace-create-mcp-submit-v1
Конфигурация 3 / Конфигурация 1 / ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
Конфигурация 3 / Конфигурация 1 / workspaceIdstringОбязательноФактические координаты рабочего пространства кандидата.
Конфигурация 3 / Конфигурация 1 / resourcesarrayОбязательноОбъявление исходной модели, скомпилированное сервером. minItems: 1
Конфигурация 3 / Конфигурация 1 / idempotencyKeystringОбязательноСтабильно используемый идемпотентный ключ той же логической операции.
Конфигурация 3 / Конфигурация 2 / artifactTypestringОбязательноФактически включённый тип публикации артефакта или онтологии. enum: ONTOLOGY_RELEASE
Конфигурация 3 / Конфигурация 2 / contractVersionstringОбязательноНеобходимо использовать точную версию контракта, фактически поддерживаемую. enum: ontology-workspace-create-mcp-submit-v2
Конфигурация 3 / Конфигурация 2 / ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
Конфигурация 3 / Конфигурация 2 / workspaceIdstringОбязательноФактические координаты рабочего пространства кандидата.
Конфигурация 3 / Конфигурация 2 / resourcesarrayОбязательноОбъявление исходной модели, скомпилированное сервером. minItems: 1
Конфигурация 3 / Конфигурация 2 / idempotencyKeystringОбязательноСтабильно используемый идемпотентный ключ той же логической операции.
Конфигурация 3 / Конфигурация 2 / releaseSelectionsobjectОбязательноТочная releaseId каждой опубликованной ссылки и замыкание зависимостей.
Конфигурация 4 / artifactTypestringОбязательноФактически включённый тип публикации артефакта или онтологии. enum: ONTOLOGY_RELEASE
Конфигурация 4 / contractVersionstringОбязательноНеобходимо использовать точную версию контракта, фактически поддерживаемую. enum: ontology-initial-activation-retirement-submit-v1
Конфигурация 4 / ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
Конфигурация 4 / domainRidstringОбязательноРеальная бизнес-домен RID.
Конфигурация 4 / consumerScopesarrayОбязательноТочный диапазон потребителей, разрешённый сервером. minItems: 1; maxItems: 256
Конфигурация 4 / idempotencyKeystringОбязательноСтабильно используемый идемпотентный ключ той же логической операции.
Глава 33

Справочник параметров инструмента: Ввод и область знаний

Полные имена и поля ввода, сгруппированные по инструментам.

Приведённые ниже таблицы — справочник по полям ввода текущих инструментов r56. Полные вложенные типы, oneOf, условно обязательные поля, ограничения схемы и часть схем выходных данных см. в reference/mcp-tool-catalog.json; перед финальной отправкой всё равно считайте tools/list текущего Grant. Пометка «опционально» в таблице не отменяет внутренних требований валидации действия.

dfc_ontology_knowledge_input_propose

ПараметрТипТребованиеЗначение и диапазон
requestobjectОбязательноИсходный бизнес-запрос на ввод; согласно полной вложенной схеме.
idempotencyKeystringОбязательноИдемпотентный ключ, стабильно используемый повторно для одной и той же логической операции. minLength: 1; maxLength: 128

У этого инструмента есть собственный нативный outputSchema. Проверяйте полноту вывода, статус и поля авторизации, явно равные false; не интерпретируйте их самостоятельно как признак завершения.

dfc_ontology_knowledge_input_preview

ПараметрТипТребованиеЗначение и диапазон
idempotencyKeystringОбязательноИдемпотентный ключ, стабильно используемый повторно для одной и той же логической операции. minLength: 1; maxLength: 128
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.

У этого инструмента есть собственный нативный outputSchema. Проверяйте полноту вывода, статус и поля авторизации, явно равные false; не интерпретируйте их самостоятельно как признак завершения.

dfc_ontology_knowledge_question_submit

ПараметрТипТребованиеЗначение и диапазон
questionRevision$refОбязательноТочная версия вопроса, требующего подтверждения в этот раз.
idempotencyKey$refОбязательноСтабильно используемый идемпотентный ключ той же логической операции.
originalInputKey$refОбязательноИдемпотентный ключ, соответствующий исходному вводу знаний.
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка.
validUntil$refОбязательноКонец действующего окна вопроса, время UTC.
expectedRevisiononeOfОбязательноВерсия-предпосылка исходного результата или бизнес-заголовка; при создании вопроса может быть null.
validFrom$refОбязательноНачало действующего окна вопроса, время UTC.

У этого инструмента есть собственный нативный outputSchema. Проверяйте полноту вывода, статус и поля авторизации, явно равные false; не интерпретируйте их самостоятельно как признак завершения.

dfc_ontology_business_scope_initialize

ПараметрТипТребованиеЗначение и диапазон
domainRevisionIdstringОбязательноТочная версия бизнес-домена. minLength: 1; maxLength: 128
idempotencyKeystringОбязательноИдемпотентный ключ, стабильно используемый повторно для одной и той же логической операции. minLength: 1; maxLength: 128
businessSystemIdstringОбязательноРеальный ID бизнес-системы. minLength: 1
ontologyIdstringОбязательноРеальный ID онтологии в рамках текущей авторизации, сохраняемый как строка. minLength: 1
domainRidstringОбязательноРеальная бизнес-домен RID. minLength: 1; maxLength: 128

У этого инструмента есть собственный нативный outputSchema. Проверяйте полноту вывода, статус и поля авторизации, явно равные false; не интерпретируйте их самостоятельно как признак завершения.

Глава 34

Справочник параметров инструмента: Business Workspace

Полные имена и поля ввода, сгруппированные по инструментам.

Приведённые ниже таблицы — справочник по полям ввода текущих инструментов r56. Полные вложенные типы, oneOf, условно обязательные поля, ограничения схемы и часть схем выходных данных см. в reference/mcp-tool-catalog.json; перед финальной отправкой всё равно считайте tools/list текущего Grant. Пометка «опционально» в таблице не отменяет внутренних требований валидации действия.

dfb_systems

Корневой объект ввода этого инструмента не содержит полей; используйте пустой объект arguments.

dfb_system_describe

ПараметрТипТребованиеЗначение и диапазон
systemIdstring / integerОбязательноID систем, разрешённые текущим бизнес-грантом.

dfb_query

ПараметрТипТребованиеЗначение и диапазон
systemIdstring / integerОбязательноID систем, разрешённые текущим бизнес-грантом.
queryKeystringОбязательноОпубликованный ключ запроса, возвращённый describe.
objectKeystringОпционально или условно обязательноКлюч опубликованного объекта.
pageSizeintegerОпционально или условно обязательноКоличество записей на странице; согласно лимиту схемы. minimum: 1; maximum: 100
pageintegerОпционально или условно обязательноНомер страницы, начиная с 1. minimum: 1
statestringОпционально или условно обязательноФильтр бизнес-статуса или статус на стороне сервера.

dfb_record

ПараметрТипТребованиеЗначение и диапазон
recordIdstring / integerОбязательноID бизнес-записи, разрешённой к чтению в данный момент.
systemIdstring / integerОбязательноID систем, разрешённые текущим бизнес-грантом.

dfb_work_items

ПараметрТипТребованиеЗначение и диапазон
systemIdstring / integerОбязательноID систем, разрешённые текущим бизнес-грантом.

dfb_action_plan

ПараметрТипТребованиеЗначение и диапазон
expectedRecordVersionintegerОпционально или условно обязательноТекущая версия оптимистичной блокировки целевой записи. minimum: 1
systemIdstring / integerОбязательноID систем, разрешённые текущим бизнес-грантом.
commandTypestringОбязательноТип команды из опубликованного контракта.
canonicalIrHashstringОбязательноХеш канонического IR текущей публикации.
releaseIdstring / integerОбязательноФактический ID версии контракта публикации.
payloadobjectОбязательноПолезная нагрузка, соответствующая текущему контракту команды в describe.
releaseHashstringОбязательноФактический хеш контракта публикации.
targetRecordIdstring / integerОпционально или условно обязательноРеальная целевая запись, над которой требуется выполнить операцию.
agentManifestHashstringОбязательноФактический хеш манифеста возможностей агента.
planIdempotencyKeystringОбязательноСтабильный идемпотентный ключ бизнес-плана.

dfb_action_status

ПараметрТипТребованиеЗначение и диапазон
actionPlanIdstring / integerОбязательноID плана действий, принадлежащий текущему бизнес-гранту.

dfb_action_execute

ПараметрТипТребованиеЗначение и диапазон
approvalTokenstringОпционально или условно обязательноМатериалы на одобрение, отправленные исходным сервером; самостоятельная генерация запрещена.
actionPlanIdstring / integerОбязательноID плана действий, принадлежащий текущему бизнес-гранту.