最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenClaw .NET兼容性目錄指南(CompatibilityCatalog)

  發(fā)布時(shí)間:2026-05-22 08:53:34   作者:張善友   我要評(píng)論
這篇文章給大家介紹OpenClaw.NET兼容性目錄指南(CompatibilityCatalog),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

概述

compat/public-smoke.json 是 OpenClaw.NET 兼容性驗(yàn)證體系的核心清單文件。它承擔(dān)著以下關(guān)鍵職責(zé):

  • 集中管理所有已知公開(kāi)插件(NPM Plugin)和技能(ClawHub Skill)的預(yù)期行為;
  • 作為自動(dòng)化煙霧測(cè)試(Public Smoke Tests) 的唯一數(shù)據(jù)源;
  • 通過(guò) CLI 命令 與 REST API 暴露給運(yùn)維與集成方查詢;
  • 在構(gòu)建期作為嵌入資源(Embedded Resource)編譯進(jìn) OpenClaw.Core 程序集,對(duì) NativeAOT 完全友好,運(yùn)行時(shí)無(wú)需訪問(wèn)文件系統(tǒng)。

無(wú)論是發(fā)布前的回歸驗(yàn)證、外部集成方的兼容性自查,還是社區(qū)貢獻(xiàn)者新增插件,都以該清單為唯一事實(shí)來(lái)源(Single Source of Truth)。

文件結(jié)構(gòu)

清單頂層是一個(gè)帶版本號(hào)的 JSON 對(duì)象,entries 字段為條目數(shù)組:

{
  "version": 2,
  "entries": [
    {
      "id": "agentseo-plugin",
      "category": "ts-jiti-plugin",
      "kind": "npm-plugin",
      "spec": "@agentseo/openclaw-plugin@0.1.4",
      "packageName": "@agentseo/openclaw-plugin",
      "pluginId": "agentseo",
      "expectedStatus": "compatible",
      "configJson": "{\"apiKey\":\"test_key\"}",
      "expectedToolNames": ["agentseo_audit", "agentseo_keywords"],
      "expectedSkillNames": ["agentseo"]
    }
  ]
}

條目字段說(shuō)明

字段按用途分為三組:通用字段、技能專用字段、插件專用字段。

通用字段(所有條目必填)

字段類型說(shuō)明
idstring場(chǎng)景唯一標(biāo)識(shí),須在 entries 中保持唯一
categorystring場(chǎng)景分類:pure-skill、js-tool-plugints-jiti-plugin、config-schema-plugin、unsupported-surface-plugin
kindstring資源類型:clawhub-skill 或 npm-plugin

技能專用字段(kind == "clawhub-skill"

字段類型必填說(shuō)明
slugstring?ClawHub 中的技能標(biāo)識(shí)符
versionstring?技能的 SemVer 版本
expectedRelativePathstring?安裝后的預(yù)期相對(duì)路徑,如 skills/my-skill/SKILL.md

插件專用字段(kind == "npm-plugin"

字段類型必填說(shuō)明
specstring?NPM 包規(guī)范,如 @agentseo/openclaw-plugin@0.1.4
packageNamestring?NPM 包名
pluginIdstring?插件唯一標(biāo)識(shí)
expectedStatusstring?預(yù)期兼容性狀態(tài):compatible 或 incompatible
configJsonstring??JSON 字符串形式的示例配置
installExtraPackagesstring[]??需要額外安裝的依賴包列表
expectedToolNamesstring[]??預(yù)期暴露的工具名稱(僅 compatible 場(chǎng)景)
expectedSkillNamesstring[]??預(yù)期提供的技能名稱(僅 compatible 場(chǎng)景)
expectedDiagnosticCodesstring[]??預(yù)期的診斷錯(cuò)誤碼(僅 incompatible 場(chǎng)景)

?? 注意:NPM 插件條目必須顯式指定 expectedStatus,編譯期校驗(yàn)會(huì)拒絕缺失該字段的條目。

場(chǎng)景分類詳解

OpenClaw.NET 共定義了 5 種 category,覆蓋了從純技能到負(fù)面用例的全部典型場(chǎng)景:

Category說(shuō)明測(cè)試目的典型示例
pure-skill獨(dú)立技能包,無(wú) NPM 依賴驗(yàn)證 SKILL.md 格式與 ClawHub 安裝流程pdf-form-filler
js-tool-pluginJavaScript 編寫(xiě)的橋接插件驗(yàn)證 JS 插件加載與工具導(dǎo)出@example/js-plugin
ts-jiti-pluginTypeScript + JITI 轉(zhuǎn)譯的插件驗(yàn)證 TypeScript 轉(zhuǎn)譯與 JITI 集成@agentseo/openclaw-plugin
config-schema-plugin配置校驗(yàn)負(fù)面場(chǎng)景驗(yàn)證無(wú)效配置被檢測(cè)并返回診斷碼缺失必填字段 / 字段類型錯(cuò)誤
unsupported-surface-plugin不支持功能的負(fù)面場(chǎng)景驗(yàn)證不支持的 API 被顯式拒絕注冊(cè) CLI 命令 / 調(diào)用受限 API

正面與負(fù)面場(chǎng)景

正面場(chǎng)景(expectedStatus = "compatible"

  • 驗(yàn)證插件/技能能夠成功加載;
  • 驗(yàn)證聲明的工具和技能均正確暴露到 Gateway;
  • 使用 expectedToolNames 與 expectedSkillNames 進(jìn)行斷言;
  • 任何缺失或多余的工具/技能均判定為失敗。

負(fù)面場(chǎng)景(expectedStatus = "incompatible"

  • 驗(yàn)證錯(cuò)誤能被系統(tǒng)顯式檢測(cè)并拒絕,而非"部分加載"或靜默忽略;
  • 使用 expectedDiagnosticCodes 斷言錯(cuò)誤碼;
  • 典型診斷碼:
診斷碼含義
config_one_of_mismatch配置不滿足 oneOf 約束
unsupported_cli_registration插件嘗試注冊(cè)不支持的 CLI 命令
unsupported_surface_call調(diào)用了未公開(kāi)/受限的 API 表面
schema_required_missing必填字段缺失

使用方式

CLI 查詢

OpenClaw CLI 提供 compatibility catalog 子命令,便于本地查詢與腳本消費(fèi):

# 查看所有條目
openclaw compatibility catalog
# 按狀態(tài)過(guò)濾
openclaw compatibility catalog --status compatible
openclaw compatibility catalog --status incompatible
# 按類型與分類過(guò)濾
openclaw compatibility catalog --kind npm-plugin --category ts-jiti-plugin
# JSON 格式輸出(適用于程序化消費(fèi))
openclaw compatibility catalog --json
# 簡(jiǎn)寫(xiě)形式
openclaw compat catalog

REST API

Gateway 通過(guò) /api/integration/compatibility 路由族對(duì)外暴露:

GET /api/integration/compatibility/catalog
GET /api/integration/compatibility/catalog?compatibilityStatus=compatible
GET /api/integration/compatibility/catalog?kind=npm-plugin&category=ts-jiti-plugin
GET /api/integration/compatibility/export
  • /catalog 端點(diǎn)支持 compatibilityStatus、kind、category 三個(gè)查詢參數(shù)過(guò)濾;
  • /export 端點(diǎn)返回完整的兼容性報(bào)告,包含運(yùn)行時(shí)模式(AOT / JIT)、安全態(tài)勢(shì)(Security Posture)、通道就緒狀態(tài)(Channel Readiness)等額外維度,適合在 CI 中歸檔或?qū)油獠块T戶。

自動(dòng)化測(cè)試

測(cè)試類 PublicCompatibilitySmokeTests 在運(yùn)行時(shí)自動(dòng)讀取清單并迭代執(zhí)行:

  • 觸發(fā)開(kāi)關(guān):環(huán)境變量 OPENCLAW_PUBLIC_SMOKE=1 必須設(shè)置,否則測(cè)試整體跳過(guò);
  • ClawHub 技能:通過(guò) npx clawhub 安裝并校驗(yàn) expectedRelativePath 文件存在;
  • compatible 插件:執(zhí)行安裝、加載、然后斷言 expectedToolNames / expectedSkillNames 完整暴露;
  • incompatible 插件:執(zhí)行安裝、加載,斷言加載失敗且診斷碼集合至少包含 expectedDiagnosticCodes 中的全部條目。

CI/CD 集成

在 GitHub Actions 中,public-compatibility-smoke 作業(yè)承擔(dān)清單的回歸驗(yàn)證:

  • 觸發(fā)條件:定時(shí)執(zhí)行(schedule)或手動(dòng)派發(fā)(workflow_dispatch);
  • 依賴環(huán)境:Node.js 20(用于 npm 與 clawhub 命令鏈路);
  • 執(zhí)行流程dotnet test + --filter Category=PublicSmoke;
  • 報(bào)告產(chǎn)物:生成 TRX 格式測(cè)試報(bào)告并作為 artifact 上傳;
  • 失敗語(yǔ)義:任意條目斷言失敗即視為整個(gè)作業(yè)失敗,需在合并前修復(fù)。

如何貢獻(xiàn)新條目

添加新技能

{
  "id": "my-new-skill",
  "category": "pure-skill",
  "kind": "clawhub-skill",
  "slug": "my-new-skill",
  "version": "1.0.0",
  "expectedRelativePath": "skills/my-new-skill/SKILL.md"
}

添加兼容插件(正面場(chǎng)景)

{
  "id": "my-plugin",
  "category": "js-tool-plugin",
  "kind": "npm-plugin",
  "spec": "@my-org/openclaw-plugin@1.0.0",
  "packageName": "@my-org/openclaw-plugin",
  "pluginId": "my-plugin",
  "expectedStatus": "compatible",
  "configJson": "{\"apiKey\":\"test_key\"}",
  "expectedToolNames": ["my_tool_1", "my_tool_2"],
  "expectedSkillNames": ["my-skill"]
}

添加不兼容場(chǎng)景(負(fù)面場(chǎng)景)

{
  "id": "broken-plugin-example",
  "category": "config-schema-plugin",
  "kind": "npm-plugin",
  "spec": "@my-org/broken-plugin@1.0.0",
  "packageName": "@my-org/broken-plugin",
  "pluginId": "broken-plugin",
  "expectedStatus": "incompatible",
  "configJson": "{\"wrongField\": 123}",
  "expectedDiagnosticCodes": ["config_one_of_mismatch"]
}

貢獻(xiàn)流程

  • 在 compat/public-smoke.json 的 entries 數(shù)組末尾追加條目;
  • 確保必填字段完整:
    • NPM 插件:必須包含 expectedStatus、spec、packageName、pluginId
    • 技能:必須包含 slug、version、expectedRelativePath;
    • 本地設(shè)置 OPENCLAW_PUBLIC_SMOKE=1 并執(zhí)行:
dotnet test OpenClaw.Net.slnx --filter Category=PublicSmoke
  • 如引入了新的 category 或 kind,需同步:
  • 升級(jí)清單頂層 version 字段;
  • 更新 PublicCompatibilityCatalog 中的枚舉與轉(zhuǎn)換邏輯;
  • 更新本文檔的場(chǎng)景分類詳解表格(文中有介紹)。

數(shù)據(jù)轉(zhuǎn)換邏輯

清單在運(yùn)行時(shí)通過(guò) PublicCompatibilityCatalog.CreateCatalog() 轉(zhuǎn)換為富目錄(Rich Catalog),以便 CLI 與 REST API 直接消費(fèi)。核心映射規(guī)則如下:

源字段生成字段轉(zhuǎn)換邏輯
slug / packageName / pluginId / idSubject按優(yōu)先級(jí)取第一個(gè)非空值
kind + spec / slugInstallCommand技能:openclaw clawhub install {slug}插件:openclaw plugins install {spec} --dry-run
category + expectedStatusSummary根據(jù)場(chǎng)景性質(zhì)生成人類可讀描述
expectedStatusScenarioTypecompatible → "positive"incompatible → "negative"
多字段組合Guidance[]上下文相關(guān)的操作建議(如"配置 schema 錯(cuò)誤,請(qǐng)參考插件文檔")

與 NativeAOT 的關(guān)系

OpenClaw.NET 的 NativeAOT 約束直接影響清單的加載與序列化方式:

  • 嵌入資源compat/public-smoke.json 在 .csproj 中以 <EmbeddedResource> 方式編譯進(jìn) OpenClaw.Core.dll,運(yùn)行時(shí)無(wú)任何文件 I/O;
  • JSON 源生成:使用 CoreJsonContext(基于 JsonSerializerContext 的 source generator)反序列化清單,完全規(guī)避反射;
  • 橋接協(xié)議:插件通過(guò) plugin-bridge.mjs 走 JSON-RPC over stdio,避免在主進(jìn)程中動(dòng)態(tài)加載托管程序集;
  • AOT/JIT 一致性:清單驅(qū)動(dòng)的煙霧測(cè)試同時(shí)覆蓋 AOT 與 JIT 兩種發(fā)布模式,確保行為一致。

故障排查

癥狀可能原因解決方案
測(cè)試報(bào)告 "plugin failed to load"configJson 格式錯(cuò)誤或字段類型不匹配檢查 JSON 是否符合插件實(shí)際 schema,使用 --dry-run 先行驗(yàn)證
"expected tool not found"插件未聲明該工具或工具名拼寫(xiě)錯(cuò)誤校對(duì) expectedToolNames 與插件運(yùn)行時(shí)實(shí)際暴露的工具名
編譯期錯(cuò)誤 "npm-plugin must declare expectedStatus"新條目缺少 expectedStatus 字段明確指定 "compatible" 或 "incompatible"
煙霧測(cè)試整體未運(yùn)行環(huán)境變量未設(shè)置設(shè)置 OPENCLAW_PUBLIC_SMOKE=1 后重試
clawhub 安裝失敗Node.js 未安裝或版本過(guò)低安裝 Node.js 20+ 并確保 npx 可用
expectedDiagnosticCodes 不匹配錯(cuò)誤碼命名變更或新增查閱最新診斷碼列表,必要時(shí)同步更新清單
AOT 模式啟動(dòng)報(bào)缺少元數(shù)據(jù)新增字段未在 CoreJsonContext 中聲明在源生成上下文中添加對(duì)應(yīng)類型

到此這篇關(guān)于OpenClaw.NET 兼容性目錄指南(Compatibility Catalog)的文章就介紹到這了,更多相關(guān)OpenClaw.NET 兼容性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • OpenClaw開(kāi)發(fā)自定義Skills的實(shí)戰(zhàn)指南

    為 OpenClaw開(kāi)發(fā)自定義 Skills,就像是給它裝上能按你心意干活的新“手腳”,這個(gè)過(guò)程比你想象的要簡(jiǎn)單,只要遵循一定的規(guī)范和流程,即便是新手也能在短時(shí)間內(nèi)開(kāi)發(fā)出第一個(gè)
    2026-05-20
  • OpenClaw Gateway 卡死假死問(wèn)題完整診斷與預(yù)防方案解析

    這篇文章給大家介紹OpenClaw Gateway 卡死假死問(wèn)題完整診斷與預(yù)防方案解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2026-05-20
  • 本地部署OpenClaw(龍蝦)的全攻略

    在2026年的AI智能體浪潮中,OpenClaw無(wú)疑是GitHub上最受關(guān)注的開(kāi)源項(xiàng)目之一,GitHub星標(biāo)已超過(guò)30.9萬(wàn)顆,登頂多個(gè)開(kāi)源榜單,本文給大家介紹了本地部署OpenClaw(龍蝦)的全攻
    2026-05-19
  • OpenClaw Skills 安裝與配置指南

    本文介紹了OpenClawSkills的概念、獲取途徑、安裝方式、推薦Skills及配置方法,通過(guò)ClawHub官網(wǎng)、GitHub倉(cāng)庫(kù)等獲取Skills,使用ClawHubCLI或OpenClawCLI安裝,文章還提供了安
    2026-05-18
  • OpenClaw修改默認(rèn)端口的操作方法

    這篇文章給大家介紹OpenClaw修改默認(rèn)端口的操作方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2026-05-18
  • openclaw允許公網(wǎng)和內(nèi)網(wǎng)訪問(wèn)的實(shí)現(xiàn)

    OpenClaw網(wǎng)關(guān)默認(rèn)僅監(jiān)聽(tīng)本地回環(huán)地址,通過(guò)檢查防火墻規(guī)則、網(wǎng)關(guān)狀態(tài)和配置,發(fā)現(xiàn)服務(wù)僅在本地運(yùn)行,下面就來(lái)詳細(xì)的介紹一下openclaw允許公網(wǎng)和內(nèi)網(wǎng)訪問(wèn)的實(shí)現(xiàn),感興趣的可以
    2026-05-18
  • openclaw環(huán)境搭建、模型配置與 WebUI 遠(yuǎn)程訪問(wèn)

    文章詳細(xì)介紹了使用OpenClaw框架搭建自主智能體的過(guò)程,包括環(huán)境初始化、模型接入配置、技能庫(kù)設(shè)置、服務(wù)啟動(dòng)等WebUI遠(yuǎn)程訪問(wèn)等,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或
    2026-05-15
  • 云端 OpenClaw 遠(yuǎn)程執(zhí)行本地進(jìn)程原理機(jī)制詳解:Gateway、approvals 與 system.run 到底

    這篇文章給大家介紹云端 OpenClaw 遠(yuǎn)程執(zhí)行本地進(jìn)程原理機(jī)制詳解:Gateway、approvals 與 system.run 到底誰(shuí)在判定、誰(shuí)在執(zhí)行,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨
    2026-05-15
  • OpenClaw實(shí)操指南之6個(gè)最值得優(yōu)先安裝的基礎(chǔ)元技能Skill

    本文介紹了OpenClaw系統(tǒng)中6個(gè)最值得優(yōu)先安裝的基礎(chǔ)元技能,這些技能專注于管理和擴(kuò)展OpenClaw本身的功能,包括find-skills,skill-creator,mcp-builder,skill-vetter,web
    2026-05-14
  • 利用OpenClaw為Android開(kāi)發(fā)電腦瘦身的詳細(xì)步驟

    開(kāi)發(fā)久了的電腦,Android 項(xiàng)目越堆越多,compileSdk 五花八門,NDK 版本滿天飛,想清理又懶得一個(gè)個(gè)翻?讓 AI 助手一句話搞定,所以本文給大家介紹了如何利用OpenClaw為Andro
    2026-05-14

最新評(píng)論

曲靖市| 阿图什市| 泸西县| 桦甸市| 钟祥市| 和林格尔县| 海林市| 三门县| 高邑县| 酒泉市| 千阳县| 金山区| 曲周县| 江川县| 张家港市| 万源市| 廉江市| 张家港市| 二连浩特市| 鹤峰县| 凌海市| 永州市| 孝义市| 卓资县| 台中县| 获嘉县| 泸定县| 新民市| 蒙自县| 巴彦淖尔市| 石屏县| 宜都市| 万宁市| 日土县| 岳普湖县| 甘德县| 白山市| 上犹县| 灵武市| 溆浦县| 琼中|