https://github.com/samzong/lathe
越来越多的人在讨论通过 CLI 的方式让 Agent 来连接和使用应用。
但是对于存量的业务系统,大家还都是提供 restapi/grpc 这样的接口;因为业务需要,我们也遇到了需要把最近 2-3 年的超过 30 多个子模块的业务的 API 结合大模型,提供类似 Copilot 的能力。面临的问题要兼容老版本,也不希望每个业务团队再去做开发支持, 而且大量业务 API 众多,最大一个都超过上千的 API 。
在这个背景下,我做了一个 lathe ,他的特点是连接你已有的 swagger/openapi/protobuf ,通过 spec parser 聚合为统一的 IR , 然后生成 cobra 应用,并且会附带一份 API 指南的 SKILL ,就这么简单。你可以通过组合的方式,把旧世界存量的系统直接接入到 Agent 中。
你需要做的,就是维护 cli.yaml - 生成 CLI 的名称、介绍等信息 sources.yaml - 定义各个模块及来源信息
几个我觉得还挺不错功能点可以说下:
- override layer - 一定会被问到的屎山的 API 生成 CLI 也是屎山,一样难用,不是原生为 CLI 设计的,所以 你可以定义一个 override.yaml 来覆盖其中的一些 名称,参数等等
- auth - lathe 提供统一的 auth 的接入方式,和认证信息管理;你不需要自己维护 auth 这块的功能,目前支持了 token ,basic auth, oidc 这些,可以扩充
- command/search - 可以 agent 在执行时可以通过 search 快速找到合适的命令,配合 command 查看命令的参数信息
