OpenClaw 執(zhí)行SKILL文件定義的Http接口流程

核心發(fā)現(xiàn)

在 OpenClaw 中,Skills 和 HTTP/API 工具定義是兩個獨立的機制:

  1. Skills(基于文檔的方式)

Skills 是 Markdown 文件(skills/*/SKILL.md),它們不直接定義 HTTP 工具。

模型讀取 skill 文檔后,使用 exec 工具運行 curl 命令。HTTP 調(diào)用是由 exec 工具完成的,而不是由專用的 HTTP 工具定義完成的。

  1. Plugin Tools(編程式 HTTP 工具)

Extensions(如 feishu)通過插件系統(tǒng)注冊實際可執(zhí)行的工具:

extensions/feishu/src/doc-schema.ts → 定義工具 schema
extensions/feishu/src/docx.ts → 實現(xiàn) HTTP 調(diào)用邏輯
extensions/feishu/index.ts → 通過 api.registerTool() 注冊

工具轉(zhuǎn)換管道

Plugin Tool 注冊流程:
─────────────────────
extensions/*/index.ts → api.registerTool() → Registry.tools[]

resolvePluginTools() → factory(context) → AgentTool[]

toToolDefinitions() → ToolDefinition[] → Agent 執(zhí)行

關(guān)鍵文件

┌────────────────────────┬──────────────────────────────────────────┐
│ 用途 │ 文件路徑 │
├────────────────────────┼──────────────────────────────────────────┤
│ Skill 加載 │ src/agents/skills/workspace.ts │
├────────────────────────┼──────────────────────────────────────────┤
│ Plugin tool 注冊 │ src/plugins/registry.ts │
├────────────────────────┼──────────────────────────────────────────┤
│ Plugin tool 解析 │ src/plugins/tools.ts │
├────────────────────────┼──────────────────────────────────────────┤
│ Tool definition 適配器 │ src/agents/pi-tool-definition-adapter.ts │
├────────────────────────┼──────────────────────────────────────────┤
│ HTTP tool 示例 │ extensions/feishu/src/doc-schema.ts │
└────────────────────────┴──────────────────────────────────────────┘

結(jié)論

Skills 不直接定義 HTTP 工具。它們是文檔文件,指導(dǎo)模型如何使用現(xiàn)有工具。

Plugin Tools 才是定義可執(zhí)行 HTTP 工具的機制。Extension 作者需要編寫 TypeScript 代碼來定義 schema、實現(xiàn)邏輯,然后注冊工具

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容