首页 > 教程攻略 > ai资讯 >OpenClaw怎么让AI调用API接口?

OpenClaw怎么让AI调用API接口?

来源:互联网 时间:2026-08-02 12:17:38

不少朋友在折腾OpenClaw时都会遇到一个需求:怎么让AI Agent自己跑去调用外部API,而不是每次都得手动封装函数?答案其实很直接——关键就在于一个叫

openapi-skill

的插件。它能直接解析标准的OpenAPI 3.0规范文档,自动生成可执行工具,省去写get_weather()这类函数的麻烦。

OpenClaw怎么让AI调用API接口?

要搞清楚这个流程,其实就几步:准备规范文件、安装注册插件、然后在任务中触发调用。下面逐个拆开说。

准备OpenAPI规范文件

先得拿到目标API的OpenAPI 3.0规范文档,格式可以是JSON或YAML。怎么拿?最常见的两个渠道:一是从Swagger UI页面右上角那个“Export”按钮导出openapi.json;二是直接访问API服务的/openapi.json路径下载。如果对方连这个都没提供,那这条路就走不通了——

注意,必须是标准OpenAPI 3.0格式,Swagger 2.0或Postman集合都不支持

拿到文件后,把它保存到项目本地目录,比如./skills/weather-api.yaml,这个路径后面注册时会用到。

安装并注册openapi-skill

回到OpenClaw项目根目录,执行安装命令:

pip install git+https://github.com/SKY-lv/openapi-skill.git

安装完成后,在Agent初始化配置里加上技能注册代码,大概这个样子:

from openapi_skill import OpenAPISkill
skill = OpenAPISkill.from_file('./skills/weather-api.yaml')
agent.register_skill('weather', skill)

这一步走完,Agent就相当于读懂了那个API的全部端点、参数、认证方式乃至响应结构——你不需要再写一个get_weather()函数,它自己就能搞定。

在任务中触发API调用

接下来有两种方式让Agent动手。

方法一:自然语言触发


直接告诉Agent:“查一下北京当前天气”。只要规范文档里定义了GET /weather且包含city参数,Agent会自动匹配并填充参数发起调用。

方法二:显式调用技能


在代码里构造工具调用请求,比如:

agent.invoke_skill('weather', {
    'path': '/weather', 
    'method': 'GET', 
    'params': {'city': 'Beijing'}
})

这里有个容易踩坑的地方:参数名必须与OpenAPI文档中parameters字段定义的name完全一致,大小写敏感。多一个空格或少一个字母都会导致匹配失败。

验证调用是否成功

如果调用后没反应,或者返回了意料之外的结果,别急着怀疑人生,按这套排查步骤来:

第一步:启动OpenClaw时加上调试日志,添加环境变量LOG_LEVEL=DEBUG

第二步:在Agent输出里搜索包含[openapi-skill]前缀的日志行;

第三步:确认日志里出现了Resolved operationId=...Calling HTTP request...这样的字样——这两个出现说明解析和请求都正常;

第四步:检查返回的observation内容是否为有效JSON,并且包含你预期的字段(比如temperature)。如果返回空或者404,大概率是OpenAPI文档里的server.url配置错了——基础路径不对,请求自然发不出去。

整个过程下来,你会发现最关键的一步其实还是规范文件本身的质量。只要文档规范、参数匹配、路径可达,AI Agent就能像调用本地函数一样调用远程API,省心又省力。