OpenClaw 执行SKILL文件定义的Http接口流程

核心发现

在 OpenClaw 中,Skills 和 HTTP/API 工具定义是两个独立的机制:

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

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

模型读取 skill 文档后,使用 exec 工具运行 curl 命令。HTTP 调用是由 exec 工具完成的,而不是由专用的 HTTP 工具定义完成的。

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

Extensions(如 feishu)通过插件系统注册实际可执行的工具:

extensions/feishu/src/doc-schema.ts → 定义工具 schema
extensions/feishu/src/docx.ts → 实现 HTTP 调用逻辑
extensions/feishu/index.ts → 通过 api.registerTool() 注册

工具转换管道

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

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

toToolDefinitions() → ToolDefinition[] → Agent 执行

关键文件

┌────────────────────────┬──────────────────────────────────────────┐
│ 用途 │ 文件路径 │
├────────────────────────┼──────────────────────────────────────────┤
│ 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 │
└────────────────────────┴──────────────────────────────────────────┘

结论

Skills 不直接定义 HTTP 工具。它们是文档文件,指导模型如何使用现有工具。

Plugin Tools 才是定义可执行 HTTP 工具的机制。Extension 作者需要编写 TypeScript 代码来定义 schema、实现逻辑,然后注册工具

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容