OT Flash Agent 與 MCP 接入手冊
協議 授權 工具合約與完整調用流程
使用 OT Flash r56 的公共 Remote MCP 構建可追溯的數據與知識應用。本冊給出 OAuth、協議報文、所有已聲明工具的參數參考、證據規則、條件能力及恢復流程,並提供可運行客戶端和合成數據示例。
Agent 開發者 整合工程師及管理員
配套樣例保留中文顯示欄位名。介面語言和說明正文的翻譯不會改變實際表名、欄位名、枚舉值、工具名或協定欄位。
目錄
- 1Agent 接入範圍與完成標準
- 2快速連接與能力發現
- 3OAuth 發現 註冊與授權
- 4Scope 資源邊界與實時權限
- 5HTTP 與現代 MCP 報文
- 6舊協定用戶端相容
- 7選擇正確工具與證據通道
- 8本體資源與 ID 類型
- 9Doris 表查詢與結構合同
- 10多維 Top3 與截斷處理
- 11知識檢索 完整原文與證據資格
- 12原生 Search 模型與會話
- 13語言與區域約定
- 14融合分析與交互式結果
- 15持久可視化報告與 MCP Apps
- 16製品草稿 預覽 計劃與應用
- 17本體候選創建與發佈合同
- 18發佈模型 候選查詢與引用閉包
- 19委託本體智能體任務
- 20業務工作臺 MCP
- 21業務知識輸入與待確認問題
- 22響應 錯誤與安全重試
- 23集成安全與能力邊界
- 24管理員接線與條件開關
- 25可運行客戶端與調用樣例
- 26嵌入本體對話界面
- 27集成驗收清單
- 28規範資源與維護
- 29工具參數參考 基礎與原生 Search
- 30工具參數參考 表格 圖譜與知識
- 31工具參數參考 分析與報告
- 32工具參數參考 建模與原任務
- 33工具參數參考 知識輸入與範圍
- 34工具參數參考 业務工作台
Agent 接入範圍與完成標準
選擇授權入口,依據服務端回執完成查詢、取證或受控寫入。
OT Flash r56 通過 Remote MCP 向外部 Agent 提供本體範圍內的數據與知識能力,並提供獨立業務工作臺入口。Agent 應以實際 tools/list、inputSchema、OAuth scope 和當前資源權限決定可執行工作,不能根據靜態手冊推斷一個部署已經啟用所有可選功能。
| 入口 | 用途 | 邊界 |
|---|---|---|
| /mcp | 本體 數據表 文檔知識 原生 Search 及條件開放的分析與建模 | 當前用戶權限與本次授權資源的交集 |
| /mcp/business | 業務系統發現 查詢 動作計劃 狀態與執行 | 獨立業務系統授權及發佈合約 |
| 本體智能體嵌入頁 | 在人類界面中使用本體對話 | 依賴真實登錄態,不是免登錄 MCP Token 交換入口 |
能力分類
- 基礎讀取:本體與資源、圖譜定位、知識檢索與完整原文、授權表詳情和 Doris SQL。
- 獨立委託:dfc_search 需要 search:operate,並繼續使用原用戶和模型權限。
- 條件開放:分析、持久報告、製品草稿與應用、本體模型查詢和委託 Agent 任務。
- 不可用能力:Flash 的 dfc_etl 僅報告 capabilities,不提供 Heavy ETL 執行。AutoML 以及內部 FocusCode 工作空間入口不屬於本冊公共 Flash API。
完成標準
讀事實必須取得實際可用的查詢或完整原文回執;生成候選必須說明尚未套用;發佈必須有真實 APPLIED 回執;取消必須區分請求與確認。用回答文字、HTTP 200、工具已接收或模型「已完成」的描述,都不能單獨證明業務操作成功。
配套 reference/mcp-tool-catalog.json 是 r56 的離線聲明參考,包含條件開啟的定義並非任何用戶的實時 tools/list。完整目錄包括 28 個本體核心工具、4 個控制器條件擴展及 8 個業務側工具,不代表默認全部開放。
快速連接與能力發現
用實例正式域名開始,以最小權限發現實際可用工具。
- 向管理員取得正式 HTTPS 根地址和需要訪問的本體或業務系統。不要使用文檔中的示例域名調用真實業務。
- 將 MCP 服務器地址配置為 https://flash.example.com/mcp,業務工作臺使用同域的 /mcp/business。
- 按客戶端支持觸發 OAuth 登錄與授權,核對資源和 scope;不要提交用戶名密碼到 MCP。
- 使用對應時代的協議發現或初始化,再讀取 tools/list 與資源說明。
- 先做一個小範圍只讀請求,核對結構化結果和錯誤,再執行用戶目標。
客戶端配置片段
{
"mcpServers": {
"ot-flash": {
"url": "https://flash.example.com/mcp"
}
}
}該片段說明服務器地址的配置意圖,具體配置文件結構和 OAuth 支持取決於客戶端。不要在公開文件中填寫真實 access_token、refresh_token、Cookie 或管理員密碼。
現代協議發現
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": {}
}
}
}接入前檢查
- 資源根地址、OAuth issuer 和反向代理對外地址一致。
- 客戶端支持相應協議時代,而不是向新協議入口固定發送 initialize。
- 當前授權綁定需要的本體或業務系統。
- Token 有效,且新的可選 scope 已經獲得明確授權。
OAuth 發現 註冊與授權
使用授權碼和 PKCE,不向 Agent 暴露產品登入憑據。
| 端點 | 方法 | 作用 |
|---|---|---|
| /.well-known/oauth-protected-resource | GET | 本體 MCP 資源發現 |
| /.well-known/oauth-protected-resource/mcp | GET | 本體資源路徑兼容發現 |
| /.well-known/oauth-protected-resource/mcp/business | GET | 業務 MCP 資源發現 |
| /.well-known/oauth-authorization-server | GET | 授權服務器元數據 |
| /oauth/register | POST JSON | 動態註冊 public client |
| /oauth/authorize | GET 或 POST form | 登錄 選擇資源並確認授權 |
| /oauth/token | POST form | 授權碼兌換和輪換刷新 |
| /oauth/revoke | POST form | Token 吊銷 |
| /oauth/grants | GET | 已登錄用戶查看授權連接 |
| /oauth/grants/revoke | POST form | 按原頁面流程撤銷連接 |
授權順序
- 讀取受保護資源元數據與授權服務器元數據。無 Token 請求返回的 401 及 WWW-Authenticate 會指向資源發現地址。
- 註冊或使用客戶端身份。r56 的動態註冊 public client 使用 token_endpoint_auth_method=none;不能用客戶端密鑰替代 PKCE。
- 生成隨機 state 與 code_verifier,計算 S256 code_challenge。
- 打開元數據指示的 authorize 地址,傳 response_type=code、client_id、精確 redirect_uri、scope、resource、state、code_challenge 和 code_challenge_method=S256。
- 用戶在 DataFocus 登錄並選擇本體或業務系統。客戶端不能預先選入用戶無權訪問的資源。
- 接收回調,驗證 state 和 issuer;使用原 code_verifier 兌換授權碼。
- 僅把 access_token 用於 MCP Bearer 認證。刷新使用原 OAuth 流程,安全保存輪換後的 refresh_token。
註冊示例
{
"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"]
}Web 客戶端回調使用 HTTPS;native 客戶端可使用受支持的回環地址。授權與換 Token 都按登記的回調精確匹配。一個 Grant 面向一個 protected resource,不把本體 scope 與業務工作臺 scope 混在同一連接。
Token 生命週期
r56 服務端缺省 access token 為 3600 秒、refresh token 為 2592000 秒、授權碼為 300 秒,部署可以覆蓋這些值。客戶端必須使用 token 響應的 expires_in 和實際錯誤判斷,不將缺省值寫死。刷新後更新 Token;撤銷角色、資源權或 Grant 會使後續調用被拒絕。
Scope 資源邊界與實時權限
授權範圍委託現有權限,不授予角色提升,也不跨 Grant 共享業務狀態。
| Scope | 典型能力 | 重要約束 |
|---|---|---|
| ontology.metadata:read | 本體 資源 表結構 | 本體及表必須在授權和當前可讀範圍內 |
| ontology.graph:read | 圖譜搜索和鄰居 | 返回定位信息,不是事實證據 |
| ontology.knowledge:read | 知識定位和完整原文 | 保留知識庫和文檔原權限 |
| ontology.table:query | 本體表 SQL 及發佈模型查詢 | 表查詢還需要 metadata scope;實際來源和列權繼續生效 |
| search:operate | 原生關鍵詞模型與會話 | 獨立明確委託,按原模型和用戶表列權限執行 |
| etl:operate | Flash ETL capabilities | 不開放 Heavy ETL |
| authoring.contract:read | 條件開放的建模合約 | 還需功能開關和相關資源 |
| authoring.artifact:read | 候選與計劃等當前授權讀取 | 綁定原主體 Grant 和資源 |
| authoring.artifact:draft | 候選提交 預覽等 | 不授權執行或發佈 |
| authoring.artifact:apply | 受控計劃與應用 | 仍需原業務角色 策略與審批 |
| execution.script:draft | 特定腳本草稿 | 不授權實際腳本執行 |
| datasource.http:read / draft / test / import | 條件開放的 HTTP 數據源製品能力 | 每項獨立開關和原權限 |
讀取組合要求
dfc_table detail 要求 ontology.metadata:read;query 另要求 ontology.table:query。dfc_ontology_query 要求 graph 與 knowledge 兩個讀取 scope。dfc_knowledge_search/detail 要求 knowledge。published_model/published_query 走 table:query;candidate_query 還需 authoring.artifact:read。分析工具還檢查允許的證據 scope;持久報告要求 metadata 與 table query。
默認授權不要硬編碼
r56 的本體默認 scope 集合包含 table query;Search 和 ETL 是顯式委託。最終仍以發現元數據、授權頁、實際 Token scope 和 tools/list 為準。舊文檔中“本體默認一定沒有 SQL”或“只有六個工具”的說法不能作為當前實現依據。
狀態隔離
會話、報告、候選和動作計劃都有自己的所有者與範圍。access token 刷新不會把原 Grant 的工作交給另一個 Grant。不要把另一連接返回的 sessionId、reportId、planId、審批令牌或來源 Token 合併到當前連接。
HTTP 與現代 MCP 報文
正確發送逐請求元數據和匹配的路由頭,分別處理 HTTP 與工具結果。
| 專案 | r56 行為 |
|---|---|
| 傳輸 | 無狀態 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 與 params._meta 中 io.modelcontextprotocol/protocolVersion 一致。
- Mcp-Method 與 JSON-RPC method 一致。
- tools/call 的 Mcp-Name 與 params.name 一致;resources/read 的名稱頭與 URI 一致。
- 每個現代請求都攜帶 io.modelcontextprotocol/clientCapabilities 物件;同時提供標準 clientInfo 便於用戶端識別。
呼叫範例
{
"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 Token 放進 URL、JSON 參數或快取鍵。
結果讀取
先處理 HTTP 狀態,再檢查 JSON-RPC error;有 result 時繼續檢查 isError。成功工具結果通常提供 structuredContent,同時有包含相同業務 JSON 的 text 內容;優先讀取結構化通道,避免把 text 和 structuredContent 當作兩份獨立事實重複彙總。HTTP 200 可能攜帶工具失敗。
公共資源與 UI
內建說明資源不依賴 MCP Apps。業務工作臺入口不因此獲得本體說明資源。支援視覺化的用戶端應透過實際能力與工具 _meta 發現對應 UI,不猜測未返回的資源 URI。
舊協定用戶端相容
在仍使用初始化握手的用戶端中保持一致的協定時代。
{
"jsonrpc": "2.0", "id": 1, "method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {},
"clientInfo": {"name": "flash-legacy-client", "version": "1.0.0"}
}
}- 發送 initialize,讀取服務端協商的協定版本與 capabilities。
- 按用戶端協定發送必要的初始化完成通知;通知沒有普通工具結果。
- 使用 tools/list 讀取當前授權工具,再發送 tools/call。
- 保持當前請求時代的頭和報文一致,不向 2026-07-28 報文發送舊 initialize 或 ping 流程。
舊協定仍使用相同 Bearer/OAuth、權限和工具合同。它不意味著伺服器一定提供舊式 SSE 長連接或 Mcp-Session-Id;r56 的公共服務保持無狀態。
協定錯誤
| 情況 | 典型結果 | 處理 |
|---|---|---|
| 現代頭與報文不一致 | HTTP 400 JSON-RPC -32020 | 修正頭、中繼資料及工具名 |
| 不支援的版本 | -32022 並提供支援版本列表 | 選擇實際支援的協定 |
| 未知方法 | JSON-RPC -32601,現代請求可能 HTTP 404 | 檢查協定時代與方法 |
| 缺少參數或非法參數 | JSON-RPC 參數錯誤或工具 isError | 按實際 inputSchema 修正 |
選擇正確工具與證據通道
根據未解決的業務問題路由,不用固定呼叫鏈重複取證。
| 任務 | 首選工具 | 完成所需證據 |
|---|---|---|
| 發現授權主題與資源 | dfc_ontologies dfc_ontology_resources | 實際資源 ID 類型及當前可見範圍 |
| 表格統計與 TopN | dfc_table query | 成功執行回執及完整 evidenceRows |
| 查制度、合同或報告 | dfc_ontology_query 或 knowledge search/detail | 完整、授權、可用於事實的原文 |
| 定位圖譜物件 | dfc_ontology_graph search/neighbors | 定位到實際來源,再取得對應事實 |
| 原關鍵字互動 | dfc_manual 然後 dfc_search | 原模型與業務幀中的實際結果 |
| 融合分析與報告 | dfc_analysis_* 或 dfc_report_* | 各結構化分支與文件證據的真實狀態 |
| 修改展示或本體模型 | dfc_authoring_* 與 artifact 工具 | 候選、計畫、審批和實際應用分別核對 |
| 執行業務命令 | /mcp/business 的 dfb_* | 已發布契約與原 ActionPlan 回執 |
避免不必要的呼叫
已有當前、完整、授權的表結構時,不要求每次查詢重新 detail;已有可信定位與證據時,不重複同一檢索。需要某個缺失維度時做有界補查。失敗明確不可重試時先解決缺口,不用「再試一次」替代判斷。
Flash 的排除項
dfc_etl capabilities 可返回 available=false 及 ETL_NOT_INCLUDED_IN_OT_FLASH。內建 ETL 函式的靜態說明用於跨產品參考,不證明 Flash 安裝了 ETL,也不允許 Agent 自動轉到 Heavy 或其他租戶執行。
本體資源與 ID 類型
先取得實際資源座標,防止把儲存名、文件 ID 和知識庫 ID 混為一談。
- 呼叫 dfc_ontologies,按 page 和 pageSize 瀏覽本次授權且當前仍可讀的本體。
- 用真實 ontologyId 呼叫 dfc_ontology_resources;按需要選擇 tables、answers、pinboards、documents 和 knowledgeBindings。
- 對每種資源分別處理分頁。pageSize 最大 100;不要以第一頁推斷整個資源範圍。
- 保存資源宣告的類型及原始 ID,後續呼叫原樣使用。
{"name":"dfc_ontology_resources","arguments":{
"ontologyId":"<ONTOLOGY_ID>",
"resourceTypes":["tables","documents","knowledgeBindings"],
"page":1,"pageSize":100
}}| 座標 | 來源 | 不能替代 |
|---|---|---|
| ontologyId | 授權本體列表或當前有效上下文 | 另一本體的 ID |
| 表資源 id | tables 列表或可信上下文 | physicalName 或顯示表名 |
| tblDisplayName colDisplayName | 當前表與列中繼資料 | 猜測的實體 SQL 識別碼 |
| knowledgeId | knowledgeBindings 或實際知識檢索回執 | 文件資源 id |
| assetId documentId chunkId evidenceId | 同一個實際定位回執 | 從不同定位結果拼接的欄位 |
| rid revisionId releaseId | 已發布模型或服務端候選上下文 | 自行產生的 ID 或 latest |
精度約定
所有 64 位元資源識別優先用十進位字串,JavaScript 不經 Number 轉換。部分業務 Schema 相容 string 或 integer,不等於可以捨棄整數精度。opaque locator、UUID、雜湊及一次性權杖也按原樣保存。
Doris 表查詢與結構合同
在授權表上執行唯讀 SQL,並保留輸出語義、精確數值和完整性。
讀取結構
{"name":"dfc_table","arguments":{
"action":"detail","ontologyId":"<ONTOLOGY_ID>","id":"<TABLE_RESOURCE_ID>"
}}detail 使用真實表資源 ID。核對 schemaComplete、tblDisplayName、columns 中的 colDisplayName 和權威 sqlDataType,以及返回的 queryContract。dataType 僅是相容映射,實體儲存名不是提交 SQL 的表名。
執行查詢
{
"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。
日期與時區
| 類型或目標 | 形式 | 注意 |
|---|---|---|
| DATE | CAST('2026-09-01' AS DATE) 與 CURRENT_DATE | 不能直接拿文字字面量假定日期類型 |
| DATETIME | CAST('2026-09-01 00:00:00' AS DATETIME) 與 CURRENT_TIMESTAMP | 核對來源時區與會話時區 |
| 相對時間 | DATE_SUB(CURRENT_DATE, INTERVAL 1 YEAR) | 日期與時間戳使用對應當前函數 |
| 時間分組 | YEAR(column) 或 DATE_TRUNC(column, 'month') | 每個輸出使用唯一別名;以 queryContract 為準 |
SQLite 的 DATE('now', ...) 不是此入口的 Doris 日期合同。不要把文件示例的 SQLite 離線核對方式放入線上 SQL。
讀取 v8 查詢回執
evidenceRows 是 Agent 面向行數據的唯一通道,raw data 不對 Agent 開放。SQL 數字以精確十進制 JSON 字符串編碼;通過 resultColumnContracts 判斷其數值和業務類型,不因為 JSON 是字符串就解釋為 VARCHAR。讀取 executionReceipt、完整性與截斷信息,保留 evidenceRowsSha256 等來源信息。
有可引用執行回執的查詢輸出可以按原樣引用;只有服務端驗證過的語義,才能授權後續確定性二次計算。不能根據字段名猜「累計餘額」「期末值」「币种」或自行補單位。零行結果、失敗或截斷不能被描述為完整統計。
多維 Top3 與截斷處理
以服務端聚合和窗口函數回答排名,不在不完整結果上二次計算。
配套 examples/top3.sql 使用示例表,先按区域、类别和产品聚合,再在各区域與类别內執行 ROW_NUMBER,並使用产品名作為金額並列時的穩定順序。請求 maxRows=100 足以容納示例的 36 行;其他業務數據需要按真實組數評估。
- 取得真實結構和當前口徑,明確币种、期間、订单状态及並列規則。
- 提交服務端聚合與排名 SQL。不要先只查詢区域總額,再將它當作类别产品排名。
- 檢查輸出列合同與實際 evidenceRows,確認返回覆蓋全部需要的組。
- 發現截斷時,按服務端支持的邊界做有界分區查詢,例如按区域分別取得完整 Top3;每次保持同一業務口徑。
- 如果來源期間發生變化,重新查詢並明確新版本,不混用不同數據版本或失效游標。
錯誤恢復
TABLE_SCHEMA_INCOMPLETE 應修正或取得完整結構;ONTOLOGY_SQL_FAILURE_CONTRACT_INVALID 等失敗按返回的 errorCode、retryable、remediation 處理。不要聲稱「所有多維 GROUP BY 或窗口函數都被禁止」,也不要在沒有查詢結果時編造排名。
知識檢索 完整原文與證據資格
把定位、讀取和事實引用分開,並保留出處與完整性。
兩種常用路徑
| 路徑 | 用途 | 要點 |
|---|---|---|
| dfc_ontology_query | 在本體綁定知識內檢索並可結合圖譜路由 | 檢查完整 canonical answerContextItems 與證據資格 |
| dfc_knowledge_search → dfc_knowledge_detail chunk | 顯式搜索定位,再讀取所選分片 | 搜索預覽不作為事實;讀取同一定位的完整原文 |
{"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 結果是定位信息。僅把服務端完整返回的 routeLocator 對象交給本體 query,包括綁定、版本和證明字段。不要把一個 assetId 或 knowledgeId 自行包裝成服務端簽發的 locator,也不要回傳模型斷言的來源證明。
結構化文件恢復
dfc_ontology_query 的 structuredPlan 是專門用於不規則文件表格的受限恢復與確定性校驗。僅在返回當前 executionContractSha256、tableIndex、列與完整表格後使用服務端聲明的計劃。普通已匯入業務表應走 dfc_table SQL;不要把 Markdown 表格恢復當作繞過表查詢授權的通道。
檢索策略
knowledgeIds 通常省略以覆蓋當前啟用綁定;傳入時僅使用 knowledgeBindings 的真實知識庫 ID。不要把文件資源 ID 當作知識庫 ID。按未解決問題做新的有界搜索,避免精確重複且沒有新增證據的檢索。
原生 Search 模型與會話
通過 dfc_search 使用 Rust Search 的關鍵詞協議,等待原業務幀終態。
先讀說明再發現能力
{"name":"dfc_manual","arguments":{
"action":"read","uri":"datafocus://manuals/search-keyword-queries/v1"
}}
{"name":"dfc_search","arguments":{"action":"capabilities"}}dfc_search 需要明確的 search:operate。它包裝原關鍵詞 WebSocket,不把關鍵詞重寫成 SQL 或 LLM 請求。會話綁定當前租戶、用戶、Grant、客戶端和模型,操作時重新檢查原表列權限。
最小會話流程
{"name":"dfc_search","arguments":{
"action":"model_create","data":{"tableIds":["<ACTUAL_TABLE_ID>"]}
}}
{"name":"dfc_search","arguments":{
"action":"open","data":{"sourceToken":"<MODEL_SOURCE_TOKEN>","language":"en-US"}
}}
{"name":"dfc_search","arguments":{
"action":"poll","data":{"sessionId":"<SEARCH_SESSION_ID>","waitMillis":10000}
}}
{"name":"dfc_search","arguments":{
"action":"request","data":{"sessionId":"<SEARCH_SESSION_ID>",
"message":{"type":"assist","datas":{}}}
}}
{"name":"dfc_search","arguments":{
"action":"request","data":{"sessionId":"<SEARCH_SESSION_ID>",
"message":{"type":"search","datas":{"search":"<QUERY_USING_ACTUAL_COLUMNS>","ambiguities":[]}}}
}}- model_create 使用 1 至 100 個真實有權表 ID,或 model_read 讀取本人已有的 sourceToken。
- open 僅返回 initializationSent;先 poll,讀取原 init 業務響應並確認成功。
- 讀取 assist 與建議,再發送受支持的原 message。query datas 中 isNl 由包裝器固定為 false。
- 持續讀取 frames,區分建議、解析、接收和最終業務結果。
- 結束時 close;需要取消時 cancel,並按真實任務狀態核對是否終止。
| action | data | 含義 |
|---|---|---|
| capabilities | 省略或空對象 | 讀取動作 命令 TTL 及傳輸說明 |
| model_create | tableIds 陣列 | 創建當前用戶的授權模型 |
| model_read | sourceToken | 讀取模型,過濾無權列和敏感源配置 |
| open | sourceToken 與可選 language | 建立原生會話並發送 init |
| request | sessionId 與 message | 發送原 type/datas 協議消息 |
| poll | sessionId 與 waitMillis 0 至 30000 | 取走當前緩衝幀並可有界等待 |
| cancel close | sessionId | 關閉這個原生會話,不能斷言 BI 終態 |
支持的原命令
search associateSearch guide assist exportContext reInit
putFormula modifyFormula deleteFormula fnamecheck
disambiguite reDisambiguite clearDisambiguite命令的大小寫和 datas 結構採用當前 capabilities 與原會話協議。不能把不存在的動作補進 request;例如 disambiguite 的拼寫必須按實際協議保留。消息最大為 256 Ki 字符。
會話與完整性
會話 TTL 為 10 分鐘,僅在當前進程存活期保留;並非可持久恢復任務。緩衝最多 256 幀且受內存上限約束,bufferOverflow=true 時不能把已取幀當作完整結果。傳輸錯誤後先 poll 原會話,不盲目重發可能已執行的查詢。
當前包裝器未提供答案或看板保存、歷史讀寫和任意上下文恢復。exportContext 的存在不意味著可以自行恢復任意上下文。需要保存結果時使用實例實際開放的原資源能力,不能猜造 action。
語言與區域約定
保持 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-CA | UI/關鍵詞包可共用,地區元數據保留 |
| 德語 義大利語 俄語 | 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,協議標識符不反轉 |
使用關鍵詞目錄
{"name":"dfc_manual","arguments":{
"action":"keywords","locale":"de-DE","names":["<ACTUAL_KEYWORD_ID>"]
}}dfc_manual 的靜態關鍵詞目錄只有明確列出的 locale,省略時使用英語參考;這是參考默認值,不是查詢語言解析規則。地區變體未提供靜態目錄時,通過當前會話 assist 獲取實際建議,不偽造別名或回退結果。單次 names 最多 32 項。
不翻譯的內容
- 表、列、枚舉值、客戶名、公式名及其他真實模型字符串。
- 工具名、action、scope、Schema 字段、錯誤碼與狀態值。
- 資源 ID、哈希、opaque locator 和服務端簽發的引用。
例如德語問題可以查詢中文顯示列「销售金额」。把它改成一個德語列名,會變成另一條標識符,而不是界面翻譯。更換語言後重新初始化或按原協議更新會話,並重新獲取建議和歧義候選。
融合分析與交互式結果
在條件開放的分析工具中,保留授權、版本、分支與證據狀態。
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 | 釋放非工作狀態會話 | 原會話 |
發起分析
{"name":"dfc_analysis_ask","arguments":{
"ontologyId":"<ONTOLOGY_ID>",
"question":"按区域分析已完成订单销售金额,并引用退货统计口径",
"language":"zh-CN"
}}- 讀取返回的 sessionId、resultId、狀態與 revision;需要時繼續讀取原結果。
- 逐個檢查結構化分支的狀態、完整性、行策略和來源,不以一個分支完成代表整次分析完整。
- 檢查文件證據、事實賬本、引用資格與局限。模型生成敘述不能獨立升級證據資格。
- 需要追問時,基於最新完整結果並傳 expectedRevision;同一變更重試複用同一冪等鍵。
- 關閉前確認會話不再工作;取消與關閉是不同動作。
受控篩選與分頁
filter_patch 使用服務端給出的 branchId、fieldRef、valueRef 和允許操作符;當前類型化篩選只聲明 EQ。禁止用原始 SQL、tableId、columnId 或客戶端私造過濾樹替換 opaque 引用。分頁 pageNo 從 1 開始,最大 10000;pageSize 最大 100。
能力提示與行為
工具 annotations 是客戶端提示,不是安全授權。部分通用模板使用 readOnlyHint,並不能代替對實際動作的判斷;取消、關閉和創建報告會改變相應工作狀態。始終按工具語義、用戶目標與服務端權限執行。
持久可視化報告與 MCP Apps
創建可恢復報告,並按當前權限讀取其結果與交互界面。
dfc_report_* 由 datafocus.mcp.analysis.report-tools.enabled 控制,並要求 metadata 與 table query scope。它與進程內 Search 會話不同,報告使用持久 reportId;持久不表示不再檢查權限。
{"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>"
}}工作流
- 創建時使用穩定的 idempotencyKey,長度 8 至 128 個受支持字符。
- 保存 reportId,輪詢 status,並檢查完成、失敗、部分完成或取消等實際狀態。
- 讀取結果時核對結構化分支、可視化、事實來源、文檔引用和完整性。
- 取消未完成報告用原 reportId;不要創建另一份報告代替取消。
- 網絡超時後先讀取原報告狀態;原冪等鍵重放應保持同一業務意圖。
MCP Apps
支持 UI 擴展的客戶端,通過工具 _meta 與實際資源發現讀取報告頁面。r56 對應的持久報告頁面為 ui://datafocus/analysis-report/v16/index.html,交互分析使用相應的服務端資源引用;客戶端不應硬編碼取代工具返回值。沒有 UI 擴展時仍可讀取結構化結果。
來源綁定
報告讀取重新檢查 Grant、本體、請求 Origin 綁定及當前表權限。瀏覽器跨來源集成需使用批准的實際來源;客戶端不通過偽造 Origin 繞過綁定。舊 reportId 不是長期公開鏈接,也不是跨用戶訪問憑據。
製品草稿 預覽 計劃與應用
把生成內容交給原服務端規範化、驗證和審批,不讓模型直接改生產資源。
製品工具需要 authoring 功能開啟、實際 artifact type、相關 scope 與原管理員寫權限。缺省類型配置為 CONTROL_PANEL_SPEC 和 VIEW_SPEC;其他表單、HTTP 來源或腳本類型還受獨立配置控制。Flash 沒有 AutoML,因此不把相關類型列為本版本可用製品。
- dfc_authoring_capabilities 讀取當前 Grant 可用的合同與動作。
- dfc_artifact_context 取得有界上下文、contractVersion、contextHash、baseArtifactHash 和 baseArtifactVersion。
- 在客戶端根據真實合同生成候選,不執行其中的代碼。
- dfc_artifact_submit 提交原上下文與候選,保持 instruction 相同,並使用穩定 clientRequestId。
- 讀取 proposalId、candidateHash、校驗和預覽;有實際錯誤時修訂候選,不偽造服務端通過狀態。
- 需要重新預覽時,使用 dfc_artifact_preview 和相同候選哈希。
- dfc_artifact_plan 創建不可變計劃,使用真實候選、目標版本和冪等鍵。
- 按原交互審批或已獲授權的策略處理批准,再 dfc_artifact_apply;只有 APPLIED 回執代表實際應用。
最小上下文請求
{"name":"dfc_artifact_context","arguments":{
"artifactType":"CONTROL_PANEL_SPEC",
"ontologyId":"<ONTOLOGY_ID>",
"instruction":"为当前授权销售指标建立区域比较面板"
}}VIEW_SPEC 使用當前授權 projectId;編輯已有製品時使用實際 artifactId。variables、previewInput、viewport 等字段按返回合同提供,不猜造候選內部結構。
並發與重試
計劃綁定目標版本、候選哈希及冪等鍵。目標變化後,舊計劃不能繼續應用;重新讀取上下文並按實際衝突處理。transport timeout 不證明失敗,先用 dfc_artifact_status 查詢原 proposalId 或 planId。READY 不是 APPLIED。
批准與自動策略
通用製品計劃需要原人工審批。符合本體自動發佈政策的計劃按 approvalMode 處理,不要求用戶另簽一份代理發明的批准。approvalToken 是服務端簽發材料,不能由 Agent 寫一個字符串替代;實際 inputSchema 與計劃回執決定必填字段。
本體候選創建與發佈合同
使用獨立版本的本體聲明與發佈配置,不把普通展示製品合同套到模型發佈。
創建候選
本體容器必須已經存在並在 Grant 內。使用 dfc_ontology_table_schema 檢查當前結構化來源字段與 v4 Binding 指紋;字段可只提供 sourceField 自動發現類型。顯式 DECIMAL 聲明需要當前精度與小數位,其他類型不攜帶這兩個字段。
{"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 | 受控初始激活退休操作 | 獨立計劃 新的人工批准與精確範圍 |
發佈順序
- 取得當前候選 workspaceId、workspaceRevision、candidateHash 及實際來源。
- 依照服務端能力選擇合同版本;提交 releases 與 selection 等坐標,不附帶自稱「已批准」「已通過」的字段。
- 保留 submit 返回的 proposalId 和原 idempotencyKey。submit 與 MODEL_PLAN 是同一請求的不同階段。
- 調用 dfc_artifact_plan,使用原候選、目標版本和同一冪等鍵。
- PLANNING_INCOMPLETE 只表示尚未形成有效計劃;VALIDATION_UNSATISFIED 表示當前校驗仍有缺口,按 nextAction 處理。
- 計劃成功後根據 HUMAN_REQUIRED 或 POLICY_AUTO 繼續,使用原審批和發佈能力。
- 以 APPLIED 回執和隨後真實的已發佈模型讀取、授權查詢確認結果。
超時與恢復
PLAN 超時後讀取原 proposalId。MODEL_PLAN_SUBMITTED 是未完成請求;MODEL_PLAN_COMPLETED 表示應以原坐標和原鍵恢復原回執,不是讓客戶端另造一條新請求。終態校驗缺口不能靠換鍵或重複提交變成發佈通過。
人類業務權限
Agent 提供的 instruction 和聲明屬於 Agent 輸入,不是人類政策簽署。MODEL_AUTHOR、MODEL_PUBLISH、自動發佈委託、業務確認、公鑰信任、預算和來源 ACL 繼續由原機制決定。不得以客戶端字段替代這些事實。
發佈模型 候選查詢與引用閉包
按精確版本使用已發佈業務知識,並保留未發佈候選的臨時性。
dfc_ontology_graph 的 published_model、published_query 與 candidate_query 是條件開放的結構化配置,不是普通 search/neighbors 的同義詞。它們按 table query 及必要的建模讀取權限授權,不能以圖譜可見性代表表權限。
讀取已發佈模型
- 當工具 action 枚舉實際包含 published_model 時,提交真實 committed releaseId。
- v1 返回授權查詢模板;v2 增加精確 PERSISTED 引用和 releaseSelections;v3 增加依賴引用、精確 domainRef 及緊湊綁定模板。
- 從實際返回值選擇對象、屬性、Binding、scope 和版本,不生成 RIDs 或使用 latest。
- 提交 published_query 的固定類型化查詢;結果仍需通過當前來源與字段授權。
候選查詢
candidate_query 使用實際 workspaceId、revision、candidateHash 和候選聲明。混合已發佈引用時使用對應 v2 類型化 LOCAL/PERSISTED 坐標及精確選擇。候選結果始終是未發佈、臨時的,不當作企業已確認知識。
局部維護與閉包
只選擇候選根所需的傳遞依賴,並保證每個已發佈引用都有精確 releaseSelections。複製發佈正文、只提交一組 ID 或擴大到所有歷史資源,都不能替代當前依賴與來源檢查。
這些 action 的 query 是版本化類型對象,不接受 SQL、物理表 ID 或來源表名替代其業務引用。元數據模板和圖譜結果本身不具有事實引用資格。
委託本體智能體任務
使用持久任務與原 Grant 恢復工作,不將 Agent 指令當作人類批准。
dfc_ontology_agent 僅在實際 Pi Runtime 和相關權限可用時顯示。QUERY 使用讀取能力;AUTHORING 還要求建模角色與對應 authoring scope。它不開放另一套無約束執行引擎。
{"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 個受支持字符且首字符為字母或數字。
恢復與取消
- 保留原 runId、Grant、mode 和冪等鍵。
- 同一鍵與相同 instruction 恢復同一 run,不重新提交另一個任務;相同鍵換指令會拒絕。
- status 查詢原任務狀態。完成後仍需核對其表查詢、證據或發佈回執。
- 取消使用原 runId;以實際任務狀態確認結果。
run 完成不是模型發佈回執。發佈任務仍通過原 artifact 狀態及來源檢查確認;QUERY 沒有隱含的寫入或發佈權。
業務工作臺 MCP
基於已發佈業務契約查詢記錄,並通過原 ActionPlan 執行命令。
/mcp/business 使用獨立 protected resource 和業務系統選擇,不能複用本體 Grant 代替業務授權。業務系統需要已發佈、可供 Agent 調用、滿足原安全策略,且當前用戶有實際運行時角色和能力。
| Scope | 工具 | 邊界 |
|---|---|---|
| business-system:discover | dfb_systems dfb_system_describe | 只發現本次授權且當前可調用系統 |
| business-system:read | dfb_query dfb_record dfb_work_items dfb_action_status | 當前用戶可讀記錄與本人計劃 |
| business-system:plan | dfb_action_plan | 僅創建不可變計劃,不執行 |
| business-system:execute | dfb_action_execute | 獨立明確授權,按風險及審批執行 |
- dfb_systems 發現授權系統。
- dfb_system_describe 讀取當前發佈契約、releaseId 及所有哈希、查詢和命令。
- dfb_query 使用已發佈 queryKey,按需要指定 objectKey、state、page 和 pageSize。它不是任意 SQL。
- dfb_record 與 dfb_work_items 讀取當前允許的記錄和待辦。
- 執行前用 dfb_action_plan 提供實際 releaseId、releaseHash、canonicalIrHash、agentManifestHash、commandType、planIdempotencyKey 與合同 payload。
- 核對 riskClass、requiresApproval 和 status;涉及目標記錄時保留 expectedRecordVersion。
- dfb_action_execute 僅執行當前連接擁有且已就緒的計劃,人工要求的審批令牌由 DataFocus 發出。
- 失敗或超時後 dfb_action_status 恢復原計劃;重試保持原冪等語義。
連接與版本綁定
計劃與當前 Grant 的穩定隔離 ID 綁定。Access Token 刷新後仍可處理同一連接的計劃,另一 OAuth 連接不能接管它。執行時重新檢查發布版本、IR/manifest 雜湊、目標記錄版本、計劃過期、冪等和審批。OAuth allowlist 不能繞過業務治理。
業務知識輸入與待確認問題
在對應生產處理器開放時登記業務輸入,並保留人類確認邊界。
以下四個工具由公共 MCP 控制器按已安裝處理器和當前 scope 條件加入。它們不在基礎目錄中始終出現。聲明 Schema 的存在不代表實例已配齊處理器、預算或權限,必須先檢查 tools/list。
| 工具 | 用途 | 不產生的授權或效果 |
|---|---|---|
| dfc_ontology_knowledge_input_propose | 為已有工作空間登記原業務輸入 | 不生成確認問題 不審批 不發布 |
| dfc_ontology_knowledge_input_preview | 從原輸入臨時預覽問題草稿 | 不持久化 不確認 不形成生產回執 |
| dfc_ontology_knowledge_question_submit | 保存 authored 且未確認的問題 | 不自動合併答案 不獲得責任權限或發布權 |
| dfc_ontology_business_scope_initialize | 顯式初始化一個業務系統消費者範圍 | 不發布 不激活 不授予來源訪問權 |
輸入與預覽
- 從實際準備工作中取得 workspaceId、workspaceRevision、localRef 與 preparationDigest。
- propose 使用原 input 合同和穩定 idempotencyKey 登記業務輸入;同鍵只能對應同一輸入。
- preview 使用原輸入的冪等鍵和 ontologyId;它每次返回服務端 revision 及 60 秒窗口,不是冪等生產完成回執。
- 需要存儲問題時,question_submit 使用新的命令鍵、原 originalInputKey、明確的 questionRevision、validFrom、validUntil 和 expectedRevision;創建時 expectedRevision 為 null。
人類確認入口
question_submit 返回的 knowledgeConfirmationPage 只是原登錄頁的相對定位,預填某個問題。它不帶 Bearer、不會自動打開頁面、不會確認知識。QUESTION_STORED_UNCONFIRMED 明確表示尚未確認,不能在回答中寫成「知識已發布」。
消費者範圍初始化
business scope initialize 必須同時具備本體發布權,以及精確業務系統的建立者或 SourceManager 管理權。它使用 domainRid、domainRevisionId 和 businessSystemId 的真實座標,不能由用戶端填寫任意 consumerScope 或已完成證明。返回 INITIALIZED 與 COMPLETED 仍明確 published=false、activationAuthorized=false。
這些請求還經過嚴格 JSON、字段集合、字節與深度校驗。輸入請求上限為 1 MiB;部分具體操作有更小上限。完整輸入和輸出 Schema 隨工具參考交付,不能把一般 MCP 包裝器的寬鬆參數邏輯套到這些嚴格合同。
響應 錯誤與安全重試
分層解釋錯誤,保持任務座標與冪等語義。
| 層次 | 檢查內容 | 處理原則 |
|---|---|---|
| 網絡與 HTTP | 連接 TLS 401 403 400 404 405 等 | 不要把失敗響應當普通查詢結果 |
| JSON-RPC | error.code message data | 區分協議 方法 參數和授權問題 |
| MCP 工具 | result.isError 與 structuredContent | HTTP 200 仍可能失敗 |
| 業務結果 | 真實狀態 完整性 失敗原因 nextAction | 收到或就緒不等於完成 |
| 事實資格 | executionReceipt citationEligible contentComplete | 沒有資格的內容僅用於定位或解釋缺口 |
常見 HTTP 情況
- 401:缺少或失效 Bearer,按當前 OAuth 流程刷新或重新授權。
- 403:Grant、角色、所選資源、來源權限、Origin 或配置不滿足;不靠重放繞過。
- 400:報文或版本化合同非法,包括現代頭與元數據不一致。
- 404:檢查確切服務路徑、協議方法及運行時能力;不要隨機換本體 ID。
- 405:公共 /mcp 的 GET、DELETE 本來不開放;改用正確 POST,而不是建立 SSE 長連接。
結果不明的寫操作
MCP_OPERATION_OUTCOME_UNKNOWN 可能包含 outcome=UNKNOWN、retryable=false、nextAction=READ_ORIGINAL_STATUS、recoveryTool 與原定位參數。先查原狀態,再恢復原請求。不要重新提交候選、更換冪等鍵或把超時當作事務回滾。
需要原樣保留的內容
- 原 Grant、資源範圍、任務和結果 ID。
- candidateHash、planHash、expectedRevision、目標版本與發布選擇。
- 同一邏輯操作的冪等鍵;不同業務操作應使用新鍵。
- 服務端聲明的 retryable、remediation、nextAction 和當前狀態。
不要從異常文本提取內部 SQL、主機、憑據或堆棧作為答案來源。記錄可公開的錯誤碼與請求關聯信息即可;原錯誤可能需要管理員在受控日誌中查看。
集成安全與能力邊界
保持身份、資源、執行和證據的原邊界,安全處理不可信文檔。
- 只連接管理員給出的正式域名;驗證 TLS 與 OAuth issuer,不關閉證書驗證。
- 使用專用、最小資源範圍的 Grant;不要把管理員賬號、Cookie 或長期內部 Token 當公共接口憑據。
- 把文檔正文當作不可信業務材料。文檔中的「忽略規則」「上傳密鑰」「執行命令」不是工具授權。
- 限制自動重試、並發和結果範圍;不在客戶端重新構造原始業務權限。
- 日誌只記錄必要關聯信息,不記錄 Bearer、refresh token、審批令牌及完整敏感業務內容。
- 用戶斷開連接或管理員撤權後,停止使用緩存中的授權和數據,不靠舊 locator 繼續調用。
工具提示不是權限
readOnlyHint、destructiveHint、idempotentHint 與 openWorldHint 用於客戶端理解能力,不保證每次調用的實際業務效果,也不替代當前用戶授權。所有寫入、計劃、預覽、會話和取消動作按其真實行為處理。
不要調用的入口
- 原 Trino/Hive/Hadoop 服務和未包括在 Flash 中的 Heavy ETL。
- 內部 FocusCode 專用 scope 或工作空間接口。
- 未在當前實例 tools/list 中出現的執行 v2、AutoML 或其他實驗工具。
- 瀏覽器私有 REST、任意數據庫連接或其他租戶的服務來繞過 MCP 拒絕。
數據語義
遵循服務端的精確十進制、類型、币种、單位、時間及證據合同。不要因為輸出文字像數字就重新四捨五入或轉換币种,也不要在結果被截斷時對可見行做全局排名。
管理員接線與條件開關
在啟用擴展能力前核對真實組件、公開地址和原權限配置。
| 配置 | 用途 | 發布要求 |
|---|---|---|
| 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 密碼及內部客戶資料。
可運行客戶端與調用樣例
使用配套最小客戶端驗證報文,不繞過 OAuth 或當前授權。
examples/flash_mcp.py 是僅依賴 Python 標準庫的最小協議客戶端。它不登錄、不代辦批准、不自動調用不可見工具,支持現代與舊協議,並按 HTTP、JSON-RPC、工具錯誤分層退出。Token 通過進程環境輸入,不寫入腳本或說明文件。
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讀取與查詢
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 已按原列名匯入;沒有對應 schema 時不能直接提交。
其他場景
- 業務入口:使用 --endpoint business,重新取得面向 /mcp/business 的 Grant。
- 舊客戶端:選擇 --protocol 2025-11-25,先 initialize,再按同一協議調用。
- 內置說明:使用 resources 或 read-resource 讀取實際 URI。
- 離線自檢:--self-test 驗證現代標頭與中繼資料建構,不需要 Token,也不請求產品伺服器。
樣例的邊界
客戶端是協議接入起點,不自動生成建模候選、保存問答或執行發佈。它輸出原 JSON 以便上層 Agent 核對業務狀態;不要僅根據進程退出碼向用戶承諾查詢、報告或發佈完成。
嵌入本體對話界面
將人類對話頁嵌入業務前端,並保持登錄與瀏覽器安全邊界。
<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 | 外部 Agent 或服務集成 | OAuth Grant 與結構化工具回執 |
| 本體對話 iframe | 人類終端用戶 | 原登錄態與對話界面 |
| MCP Apps | 支援擴展的 MCP 客戶端 | 受控資源與當前工具結果,不是公開 iframe 登錄替代 |
集成驗收清單
在真實實例上證明完整業務鏈,而不是只確認接口返回 200。
- 發現:取得實際支援版本、當前工具目錄和內置資源。
- 授權:普通用戶僅看到獲准本體與業務系統;沒有 scope 的操作拒絕。
- 表結構:真實顯示名、列、類型和權限完整。
- SQL:單維、多維、JOIN、日期、TopN 與截斷檢查符合實際業務口徑。
- 知識:定位、完整原文與事實引用資格一致,混合問題同時有數據和文檔依據。
- Search:模型、init、建議、結果、關閉及緩衝完整性檢查通過。
- 可選分析與報告:多分支真實狀態、翻頁、權限變更及取消保持原行為。
- 可選建模:候選、計劃、原審批、實際應用和版本查詢逐階段核對。
- 業務動作:發佈哈希、目標版本、審批、冪等與跨 Grant 隔離核對。
- 恢復:網絡超時後恢復原狀態,來源更新後舊定位失效並使用新查詢。
結果記錄
記錄實例版本、使用者角色、Grant 範圍、配置版本、真實操作與結果。協議用戶端離線自檢、示例 CSV 的離線預期值、靜態 JSON Schema 校驗和真正的線上功能驗收應分別標記。不要把一個階段通過外推為全部產品通過。
規範資源與維護
使用隨冊完整工具 Schema,並與實例實際發現結果保持同步。
| 資源 | 內容 |
|---|---|
| reference/mcp-tool-catalog.json | 32 個本體側和 8 個業務側的聲明輸入 Schema;部分工具含原輸出 Schema |
| reference/locales.json | 21 個可選項與 24 個兼容 locale 及 UI 術語 |
| reference/search-keywords.json | 17 個明確 locale 的靜態關鍵詞目錄 |
| reference/analysis-contract-manifest.json | 分析 分支 事實 回執及報告相關版本約束 |
| examples/ | 合成 CSV 口徑說明 Top3 SQL 預期結果與最小協議客戶端 |
內置說明資源
datafocus://manuals/etl-formulas/v1
datafocus://manuals/search-keyword-queries/v1
datafocus://manuals/etl-functions/v1
datafocus://manuals/search-keywords/v1resources/list 和 resources/read 需要當前使用者至少擁有 metadata、search operate 或 etl operate 中的一項對應讀取資格。ETL 文件是靜態跨產品參考;Flash 可執行能力仍只有其明確報告的範圍。
外部協議參考
MCP 協議與授權背景參考官方規範:https://modelcontextprotocol.io/specification/2026-07-28/basic 和 https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization 。本產品的端點、工具和條件行為以 r56 實現及當前實例發現結果為準;不能把通用協議支援等同於伺服器提供所有可選特性。
升級維護
升級時重新發現工具與版本,對比輸入 Schema、輸出合同和配置;舊 Grant 不會自動獲得新 scope。保持引用、緩存和回執與源版本綁定,在確認不兼容變化後重新取得上下文,不把舊定位強行用於新業務狀態。
工具參數參考 基礎與原生 Search
完整名稱與輸入字段,按工具分組查閱。
以下表格是當前 r56 工具輸入字段的閱讀參考。完整嵌套類型、oneOf、條件必填、模式約束和部分輸出 Schema 見 reference/mcp-tool-catalog.json;最終提交前仍需讀取當前 Grant 的 tools/list。表中的「可選」不消除動作內部校驗要求。
dfc_manual
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| names | array | 可選或條件必填 | 需要查找的明確名稱,單次最多 32 個。 maxItems: 32 |
| action | string | 可選或條件必填 | 操作名。按當前枚舉和動作對應參數使用。 enum: list, read, keywords, functions, etl_requests |
| locale | string | 可選或條件必填 | 明確靜態參考目錄 locale,不是查詢默認語言。 |
| uri | string | 可選或條件必填 | 當前工具列出的內置資源 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
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| data | object | 可選或條件必填 | 原動作載荷;參照能力發現與動作字段表。 |
| action | string | 必填 | 操作名。按當前枚舉和動作對應參數使用。 enum: capabilities, model_create, model_read, open, request, poll, cancel, close |
dfc_etl
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| data | object | 可選或條件必填 | 原動作載荷;參照能力發現與動作字段表。 |
| action | string | 必填 | 操作名。按當前枚舉和動作對應參數使用。 enum: capabilities |
dfc_ontologies
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| pageSize | integer | 可選或條件必填 | 每頁條數;按 Schema 上限。 minimum: 1; maximum: 100 |
| page | integer | 可選或條件必填 | 頁號,從 1 開始。 minimum: 1 |
dfc_ontology_resources
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| resourceTypes | array | 可選或條件必填 | 需要返回的資源類型集合。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| pageSize | integer | 可選或條件必填 | 每頁條數;按 Schema 上限。 minimum: 1; maximum: 100 |
| page | integer | 可選或條件必填 | 頁號,從 1 開始。 minimum: 1 |
工具參數參考 表格 圖譜與知識
完整名稱與輸入字段,按工具分組查閱。
以下表格是當前 r56 工具輸入字段的閱讀參考。完整嵌套類型、oneOf、條件必填、模式約束和部分輸出 Schema 見 reference/mcp-tool-catalog.json;最終提交前仍需讀取當前 Grant 的 tools/list。表中的「可選」不消除動作內部校驗要求。
dfc_ontology_graph
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| relationTypes | array | 可選或條件必填 | 關係類型過濾。 |
| depth | integer | 可選或條件必填 | 鄰居遍歷深度。 minimum: 1; maximum: 3 |
| sourceTypes | array | 可選或條件必填 | 來源類型過濾。 |
| query | object | 可選或條件必填 | 查詢文本,或 action 對應的精確版本化查詢對象。 |
| limit | integer | 可選或條件必填 | 返回數量上限。 minimum: 1; maximum: 100 |
| action | string | 必填 | 操作名稱。按當前枚舉與動作對應參數使用。 enum: search, neighbors, published_model, published_query, candidate_query |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| nodeKey | string | 可選或條件必填 | 從實際圖譜結果複製的節點鍵。 |
| keyword | string | 可選或條件必填 | 圖譜定位關鍵詞,不是智能問數語法。 |
| nodeTypes | array | 可選或條件必填 | 節點類型過濾。 |
dfc_ontology_query
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| routeLocators | array | 可選或條件必填 | 完整複製伺服器端簽發的類型化路由定位。 maxItems: 20 |
| topK | integer | 可選或條件必填 | 召回候選上限,不證明覆蓋完整。 minimum: 1; maximum: 20 |
| queryMode | string | 可選或條件必填 | 按工具枚舉選擇證據查詢模式。 enum: vector, hybrid, graph |
| fanoutPlan | object | 可選或條件必填 | 受限分支檢索計劃,按嵌套 Schema。 |
| structuredPlan | object | 可選或條件必填 | 完整文件表格的伺服器端合同綁定計劃,不是 SQL。 |
| knowledgeIds | array | 可選或條件必填 | 實際 knowledgeBindings 中的知識庫 ID。 |
| query | string | 必填 | 查詢文本,或 action 對應的精確版本化查詢對象。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
dfc_knowledge_search
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| topK | integer | 可選或條件必填 | 召回候選上限,不證明覆蓋完整。 minimum: 1; maximum: 20 |
| minScore | number | 可選或條件必填 | 最低匹配分數。 minimum: 0; maximum: 1 |
| knowledgeIds | array | 可選或條件必填 | 實際 knowledgeBindings 中的知識庫 ID。 |
| query | string | 必填 | 查詢文本,或 action 對應的精確版本化查詢對象。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| assetIds | array | 可選或條件必填 | 當前允許的文件資產 ID。 |
| retrievalStrategy | string | 可選或條件必填 | 實際支援的檢索策略。 enum: auto, hybrid_stage2 |
dfc_knowledge_detail
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| qdrantId | string / integer | 可選或條件必填 | 實際定位返回的索引標識。 |
| pageNo | integer | 可選或條件必填 | 實際頁面或分頁頁號。 |
| evidenceId | string | 可選或條件必填 | 同一知識定位返回的證據 ID。 |
| action | string | 必填 | 操作名稱。按當前枚舉與動作對應參數使用。 enum: chunk, document, page_context |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| documentId | string / integer | 可選或條件必填 | 同一定位的文件 ID。 |
| radius | integer | 可選或條件必填 | 相鄰頁面範圍。 minimum: 0; maximum: 3 |
| chunkId | string | 可選或條件必填 | 同一定位的實際分片 ID。 |
dfc_table
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| maxRows | integer | 可選或條件必填 | 返回行數上限;不是客戶端排名範圍。 minimum: 1; maximum: 200 |
| action | string | 必填 | 操作名稱。按當前枚舉與動作對應參數使用。 enum: detail, query |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| id | string | 可選或條件必填 | 真實表資源 ID,不是物理名稱或顯示名稱。 |
| sql | string | 可選或條件必填 | 單條本體範圍內唯讀 Doris SQL,顯式輸出欄位。 |
工具參數參考 分析與報告
完整名稱與輸入字段,按工具分組查閱。
以下表格是當前 r56 工具輸入字段的閱讀參考。完整嵌套類型、oneOf、條件必填、模式約束和部分輸出 Schema 見 reference/mcp-tool-catalog.json;最終提交前仍需讀取當前 Grant 的 tools/list。表中的「可選」不消除動作內部校驗要求。
dfc_analysis_ask
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| question | string | 必填 | 自然語言問題或相容追問。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| language | string | 可選或條件必填 | 明確回答或查詢 locale;省略時按對應工具規則。 |
| sessionId | string | 可選或條件必填 | 同一 Grant 下的真實會話定位。 |
dfc_analysis_refine
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| branchId | string | 可選或條件必填 | 伺服器端簽發的結構化分支定位。 |
| resultId | string | 必填 | 原返回的分析結果定位。 |
| question | string | 可選或條件必填 | 自然語言問題或相容追問。 |
| idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
| change | object | 可選或條件必填 | 自然語言變更或類型化 filter_patch。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| language | string | 可選或條件必填 | 明確回答或查詢 locale;省略時按對應工具規則。 |
| sessionId | string | 必填 | 同一 Grant 下的真實會話定位。 |
| expectedRevision | integer | 必填 | 原結果或業務頭版本前提;建立問題時可為 null。 minimum: 1 |
| visualId | string | 可選或條件必填 | 與分支綁定的視覺化定位。 |
dfc_analysis_page
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| branchId | string | 必填 | 伺服器端簽發的結構化分支定位。 |
| resultId | string | 必填 | 原返回的分析結果定位。 |
| pageNo | integer | 必填 | 實際頁面或分頁頁號。 minimum: 1; maximum: 10000 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| pageSize | integer | 必填 | 每頁條數;按 Schema 上限。 minimum: 1; maximum: 100 |
| sessionId | string | 必填 | 同一 Grant 下的真實會話定位。 |
| expectedRevision | integer | 必填 | 原結果或業務頭版本前提;建立問題時可為 null。 minimum: 1 |
dfc_analysis_result_get
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| resultId | string | 必填 | 原返回的分析結果定位。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| sessionId | string | 必填 | 同一 Grant 下的真實會話定位。 |
dfc_analysis_cancel
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| resultId | string | 必填 | 原返回的分析結果定位。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| sessionId | string | 必填 | 同一 Grant 下的真實會話定位。 |
dfc_analysis_close
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| sessionId | string | 必填 | 同一 Grant 下的真實會話定位。 |
dfc_report_create
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| goal | string | 必填 | 報告分析目標。 |
| idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| language | string | 可選或條件必填 | 明確回答或查詢 locale;省略時按對應工具規則。 |
| title | string | 可選或條件必填 | 可選報告標題。 |
dfc_report_status
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| reportId | string | 必填 | 當前 Grant 的持久報告定位。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
dfc_report_cancel
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| reportId | string | 必填 | 當前 Grant 的持久報告定位。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
工具參數參考 建模與原任務
完整名稱與輸入字段,按工具分組查閱。
以下表格是當前 r56 工具輸入字段的閱讀參考。完整嵌套類型、oneOf、條件必填、模式約束和部分輸出 Schema 見 reference/mcp-tool-catalog.json;最終提交前仍需讀取當前 Grant 的 tools/list。表中的「可選」不消除動作內部校驗要求。
dfc_ontology_agent
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| mode | string | 可選或條件必填 | QUERY 或 AUTHORING,能力分別受權。 enum: QUERY, AUTHORING |
| instruction | string | 可選或條件必填 | 用戶需求文本;上下文與提交保持一致。 maxLength: 16000 |
| idempotencyKey | string | 可選或條件必填 | 同一邏輯操作穩定複用的冪等鍵。 maxLength: 128 |
| action | string | 必填 | 操作名。按當前枚舉和動作對應參數使用。 enum: start, status, cancel |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| runId | string | 可選或條件必填 | 同一本體和 Grant 的原任務 ID。 |
| contractVersion | string | 必填 | 必須使用實際支持的精確合同版本。 enum: ontology-agent-task-v1 |
dfc_authoring_capabilities
此工具的輸入根對象沒有欄位;使用空 arguments 對象。
dfc_artifact_context
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| artifactType | string | 必填 | 實際開啟的製品或本體發布類型。 enum: CONTROL_PANEL_SPEC, VIEW_SPEC |
| scopeType | string | 可選或條件必填 | 實際製品合同中的資源範圍類型。 |
| ontologyId | string | 可選或條件必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| projectId | string | 可選或條件必填 | 當前授權項目 ID。 |
| artifactId | string | 可選或條件必填 | 編輯已有製品的真實 ID。 |
| instruction | string | 必填 | 用戶需求文本;上下文與提交保持一致。 |
| variables | object | 可選或條件必填 | 按返回合同提供的變量對象。 |
| previewInput | object | 可選或條件必填 | 按合同提供的有界預覽輸入。 |
| viewport | object | 可選或條件必填 | 原合同要求的展示視口。 |
dfc_ontology_table_schema
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| sourceAssetRef | string | 必填 | 已登記的結構化資產引用,例如 table:123。 |
| fields | array | 必填 | 當前來源的字段與可選顯式類型聲明。 minItems: 1; maxItems: 64 |
dfc_artifact_preview
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| proposalId | string | 必填 | 當前 Grant 創建的原候選 ID。 |
| candidateHash | string | 必填 | 原服務端候選的精確哈希。 |
| previewInput | object | 必填 | 按合同提供的有界預覽輸入。 |
dfc_artifact_status
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| proposalId | string | 可選或條件必填 | 當前 Grant 創建的原候選 ID。 |
| planId | string | 可選或條件必填 | 不可變應用計劃 ID。 |
dfc_artifact_plan
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| proposalId | string | 必填 | 當前 Grant 創建的原候選 ID。 |
| candidateHash | string | 必填 | 原服務端候選的精確哈希。 |
| expectedTargetVersion | integer | 必填 | 當前真實目標版本前提。 minimum: 0 |
| idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
dfc_artifact_apply
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| planId | string | 必填 | 不可變應用計劃 ID。 |
| planHash | string | 必填 | 原計劃返回的哈希。 |
| approvalToken | string | 必填 | 原服務端發出的批准材料,禁止自行生成。 |
| idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
dfc_artifact_submit
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| 配置1 / artifactType | string | 必填 | 實際開啟的製品或本體發布類型。 enum: CONTROL_PANEL_SPEC, VIEW_SPEC |
| 配置1 / scopeType | string | 可選或條件必填 | 實際製品合同中的資源範圍類型。 |
| 配置1 / ontologyId | string | 可選或條件必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| 配置1 / projectId | string | 可選或條件必填 | 當前授權項目 ID。 |
| 配置1 / artifactId | string | 可選或條件必填 | 編輯已有製品的真實 ID。 |
| 配置1 / instruction | string | 必填 | 用戶需求文本;上下文與提交保持一致。 |
| 配置1 / variables | object | 可選或條件必填 | 按返回合同提供的變量對象。 |
| 配置1 / previewInput | object | 可選或條件必填 | 按合同提供的有界預覽輸入。 |
| 配置1 / viewport | object | 可選或條件必填 | 原合同要求的展示視口。 |
| 配置1 / contractVersion | string | 必填 | 必須使用實際支持的精確合同版本。 |
| 配置1 / contextHash | string | 必填 | context 返回的完整上下文哈希。 |
| 配置1 / baseArtifactHash | string | 必填 | context 返回的基礎製品哈希。 |
| 配置1 / baseArtifactVersion | integer | 必填 | context 返回的基礎版本。 minimum: 0 |
| 配置1 / candidate | object | 必填 | 符合當前返回合同的候選對象。 |
| 配置1 / clientRequestId | string | 必填 | 當前候選請求穩定使用的客戶端冪等鍵。 |
| 配置2 / artifactType | string | 必填 | 實際開啟的製品或本體發佈類型。 enum: ONTOLOGY_RELEASE |
| 配置2 / contractVersion | string | 必填 | 必須使用實際支持的精確合同版本。 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 / ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| 配置2 / candidateHash | string | 必填 | 原服務端候選的精確哈希。 |
| 配置2 / workspaceId | string | 必填 | 實際候選工作空間坐標。 |
| 配置2 / workspaceRevision | string | 必填 | 精確候選版本,不用 latest。 |
| 配置2 / releases | object | 必填 | 按本體發佈合同提供的精確版本選擇。 |
| 配置2 / selection | object | 必填 | 只提供明確業務選擇座標,不提供權限或完成證明。 |
| 配置2 / idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
| 配置3 / 配置1 / artifactType | string | 必填 | 實際開啟的製品或本體發佈類型。 enum: ONTOLOGY_RELEASE |
| 配置3 / 配置1 / contractVersion | string | 必填 | 必須使用實際支援的精確合同版本。 enum: ontology-workspace-create-mcp-submit-v1 |
| 配置3 / 配置1 / ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| 配置3 / 配置1 / workspaceId | string | 必填 | 實際候選工作空間坐標。 |
| 配置3 / 配置1 / resources | array | 必填 | 伺服器端編譯的原模型宣告。 minItems: 1 |
| 配置3 / 配置1 / idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
| 配置3 / 配置2 / artifactType | string | 必填 | 實際開啟的製品或本體發佈類型。 enum: ONTOLOGY_RELEASE |
| 配置3 / 配置2 / contractVersion | string | 必填 | 必須使用實際支援的精確合同版本。 enum: ontology-workspace-create-mcp-submit-v2 |
| 配置3 / 配置2 / ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| 配置3 / 配置2 / workspaceId | string | 必填 | 實際候選工作空間坐標。 |
| 配置3 / 配置2 / resources | array | 必填 | 伺服器端編譯的原模型宣告。 minItems: 1 |
| 配置3 / 配置2 / idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
| 配置3 / 配置2 / releaseSelections | object | 必填 | 每個已發佈引用的精確 releaseId 及依賴閉包。 |
| 配置4 / artifactType | string | 必填 | 實際開啟的製品或本體發佈類型。 enum: ONTOLOGY_RELEASE |
| 配置4 / contractVersion | string | 必填 | 必須使用實際支援的精確合同版本。 enum: ontology-initial-activation-retirement-submit-v1 |
| 配置4 / ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| 配置4 / domainRid | string | 必填 | 真實業務域 RID。 |
| 配置4 / consumerScopes | array | 必填 | 伺服器端允許的精確消費者範圍。 minItems: 1; maxItems: 256 |
| 配置4 / idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
工具參數參考 知識輸入與範圍
完整名稱與輸入字段,按工具分組查閱。
以下表格是當前 r56 工具輸入字段的閱讀參考。完整嵌套類型、oneOf、條件必填、模式約束和部分輸出 Schema 見 reference/mcp-tool-catalog.json;最終提交前仍需讀取當前 Grant 的 tools/list。表中的「可選」不消除動作內部校驗要求。
dfc_ontology_knowledge_input_propose
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| request | object | 必填 | 原業務輸入請求;按完整巢狀 Schema。 |
| idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 minLength: 1; maxLength: 128 |
此工具另有原生 outputSchema。檢查輸出的完整性、狀態及明確為 false 的授權欄位,不自行升級完成含義。
dfc_ontology_knowledge_input_preview
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 minLength: 1; maxLength: 128 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
此工具另有原生 outputSchema。檢查輸出的完整性、狀態及明確為 false 的授權欄位,不自行升級完成含義。
dfc_ontology_knowledge_question_submit
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| questionRevision | $ref | 必填 | 本次待確認問題的明確版本。 |
| idempotencyKey | $ref | 必填 | 同一邏輯操作穩定複用的冪等鍵。 |
| originalInputKey | $ref | 必填 | 對應原知識輸入的冪等鍵。 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 |
| validUntil | $ref | 必填 | 問題有效視窗終點,UTC 時間。 |
| expectedRevision | oneOf | 必填 | 原結果或業務頭版本前提;建立問題時可為 null。 |
| validFrom | $ref | 必填 | 問題有效視窗起點,UTC 時間。 |
此工具另有原生 outputSchema。檢查輸出的完整性、狀態及明確為 false 的授權欄位,不自行升級完成含義。
dfc_ontology_business_scope_initialize
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| domainRevisionId | string | 必填 | 精確業務域版本。 minLength: 1; maxLength: 128 |
| idempotencyKey | string | 必填 | 同一邏輯操作穩定複用的冪等鍵。 minLength: 1; maxLength: 128 |
| businessSystemId | string | 必填 | 真實業務系統 ID。 minLength: 1 |
| ontologyId | string | 必填 | 本次授權內的真實本體 ID,按字符串保留。 minLength: 1 |
| domainRid | string | 必填 | 真實业务域 RID。 minLength: 1; maxLength: 128 |
此工具另有原生 outputSchema。檢查輸出的完整性、狀態及明確為 false 的授權欄位,不自行升級完成含義。
工具參數參考 业務工作台
完整名稱與輸入字段,按工具分組查閱。
以下表格是當前 r56 工具輸入字段的閱讀參考。完整嵌套類型、oneOf、條件必填、模式約束和部分輸出 Schema 見 reference/mcp-tool-catalog.json;最終提交前仍需讀取當前 Grant 的 tools/list。表中的「可選」不消除動作內部校驗要求。
dfb_systems
此工具的輸入根對象沒有欄位;使用空 arguments 對象。
dfb_system_describe
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| systemId | string / integer | 必填 | 本次業務 Grant 允許的系統 ID。 |
dfb_query
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| systemId | string / integer | 必填 | 本次業務 Grant 允許的系統 ID。 |
| queryKey | string | 必填 | describe 返回的已發布查詢鍵。 |
| objectKey | string | 可選或條件必填 | 已發布對象鍵。 |
| pageSize | integer | 可選或條件必填 | 每頁條數;按 Schema 上限。 minimum: 1; maximum: 100 |
| page | integer | 可選或條件必填 | 頁號,從 1 開始。 minimum: 1 |
| state | string | 可選或條件必填 | 業務狀態過濾或服務端狀態。 |
dfb_record
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| recordId | string / integer | 必填 | 當前允許讀取的業務記錄 ID。 |
| systemId | string / integer | 必填 | 本次業務 Grant 允許的系統 ID。 |
dfb_work_items
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| systemId | string / integer | 必填 | 本次業務 Grant 允許的系統 ID。 |
dfb_action_plan
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| expectedRecordVersion | integer | 可選或條件必填 | 目標記錄的當前樂觀鎖版本。 minimum: 1 |
| systemId | string / integer | 必填 | 本次業務 Grant 允許的系統 ID。 |
| commandType | string | 必填 | 已發布契約中的命令類型。 |
| canonicalIrHash | string | 必填 | 當前發布的規範 IR 哈希。 |
| releaseId | string / integer | 必填 | 實際發布契約版本 ID。 |
| payload | object | 必填 | 符合 describe 中當前命令合同的載荷。 |
| releaseHash | string | 必填 | 實際發布契約哈希。 |
| targetRecordId | string / integer | 可選或條件必填 | 需要操作的真實目標記錄。 |
| agentManifestHash | string | 必填 | 實際 Agent 能力 manifest 哈希。 |
| planIdempotencyKey | string | 必填 | 業務計劃的穩定冪等鍵。 |
dfb_action_status
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| actionPlanId | string / integer | 必填 | 當前業務 Grant 擁有的動作計劃 ID。 |
dfb_action_execute
| 參數 | 類型 | 要求 | 含義與範圍 |
|---|---|---|---|
| approvalToken | string | 可選或條件必填 | 原服務端發出的批准材料,禁止自行生成。 |
| actionPlanId | string / integer | 必填 | 當前業務 Grant 擁有的動作計劃 ID。 |