之前尝试过各种方法让 Agent 可以更可靠地读取 API 文档,不论是基于它开发客户端代码、做集成测试还是自动化。但复杂一些的 API 文档就会遇到超出上下文大小,即使不超出,也非常浪费上下文空间、多轮对话之后模型就又幻觉了。
最近又想做个公司产品 API 的 code helper ,但是产品的 API 文档的 OpenAPI JSON 接近 10MB ,又遇到上面的问题。陆续尝试过几种切分的方法,部分奏效,但是复杂度挺高,维护成本也高。
前几天突然想到 Skills 最擅长按需加载,就做了一个 CLI ,把 OpenAPI 文档转为 Skills 结构,核心是按 API 语义的拆分 + link ,实现按需加载,实际使用效果惊人,顺便加了点模版定制功能,更好用了。
原本单个 10MB API 文档,拆完之后是 2000+ 小的 md 文件,但是对于具体的 API 任务请求(比如写个 xx 场景运维脚本),Agent 都可以精准地读取所需的片段,探索性特别好,对单个资源的操作需求一般读 5 个片段就能准确写出了,最关键是没幻觉。
代码开源在这:
https://github.com/neutree-ai/openapi-to-skills
感兴趣的小伙伴可以试用一下给点反馈,我也在把更多常用 API 转 skills 。