OwlVigil 开源SDK:一套SDK轻松接入完整的 AI 管控能力

OwlVigil 上线之后,我一直在思考一件事情:如何将它的能力真正开放给开发者,让大家能够更轻松地接入 AI 管控能力,并在此基础上开发自己的产品。

于是,我们专门设计了一套完整的 API,并陆续开发不同语言的 SDK,几乎开放了 OwlVigil 的所有核心能力。开发者既可以通过 SDK 使用其中一部分功能,也可以基于我们的 API,构建一套完整的 AI Gateway 与管控平台。

今天,我们正式开源了第一个 OwlVigil SDK——Go SDK (https://github.com/Syrovex/owlvigil_sdk_go)。接下来,还会陆续推出 Java、Node.js 和 Python 版本。

这其实也是我创建 Syrovex、开发 OwlVigil 最初的想法:为企业和开发者补齐 AI 管控这一块基础能力,把模型接入、成本管理、权限控制、安全合规和可观测性这些复杂但又不得不做的事情处理好。而对于大多数开发者来说,一个平台的功能再多,如果接入过程很麻烦,那么使用门槛依旧很高。特别是企业内部系统,真正进入生产环境后,需要考虑的事情远比“成功调用一次模型”复杂得多。

因此,我一直希望 OwlVigil 能够足够“轻”地进入企业现有的技术体系。企业不需要推倒重来,也不需要为了引入一套 AI 管控平台而重新开发已有应用。开发者可以继续使用熟悉的语言、框架和模型,只需要将 OwlVigil 接入原有的调用链路,就能逐步获得多模型提供商接入、成本管理、访问控制、日志监控和安全合规等能力。

我们的目标也非常简单和直接:解放企业和开发者,让他们可以专注于他们的核心业务。

OwlVigil 不只是一个 AI Gateway

很多人第一次了解 OwlVigil,可能会把它理解成一个 AI Gateway,甚至只是负责转发模型请求的“中转站”。这个理解是不完整的。

AI Gateway 确实是 OwlVigil 的一部分。我们也没有打算从头重复开发所有底层能力,而是建立在成熟的开源技术和行业标准之上。因为单纯完成一次模型转发并不是最困难的事情,真正复杂的是,当 AI 开始进入生产环境后,企业应该如何管理模型、Provider、权限、预算、策略、日志和审计。

这才是 OwlVigil 真正想解决的问题。

在我们的设计中,OwlVigil 位于企业应用、Workflow、Agent 与不同模型提供商之间。应用只需要提交模型和请求,不需要在业务代码中维护每个 Provider 的密钥和接口差异;企业则可以在背后决定请求是否允许、应该路由到哪里、可以消耗多少预算,以及出现问题后如何追踪。

从接口上看,我们将这些能力分成了两个相互独立的部分:Gateway Runtime API 和 Management API。它们不是 OwlVigil 仅有的“两项功能”,而是两个面向不同场景、拥有不同权限边界的 API Surface。

Gateway Runtime API:让 AI 请求真正运行起来

Gateway Runtime API 面向应用和 Agent,负责处理实际的模型请求。目前支持模型查询、Chat Completions、Responses、Embeddings、Streaming 以及 Anthropic-compatible Messages。

开发者看到的是一个相对简单、熟悉的模型接口,但在一次请求到达上游 Provider 之前,OwlVigil 可以完成身份认证、权限判断、模型路由、策略执行、预算检查和访问限制;请求结束后,还会记录 Token、成本、状态、日志和调用链路。

也就是说,它解决的不只是“如何调用模型”,还包括模型调用之前如何控制、调用过程中如何路由,以及调用完成之后如何观测和审计。

Management API:把 AI 管控能力开放给开发者

Management API 则负责 OwlVigil 的控制与管理。通过它,开发者可以用代码完成过去需要在 Dashboard 中手动执行的工作,包括:

  • 创建并隔离不同的 Workspace 和运行环境
  • 配置 Provider、模型、路由及备用候选
  • 创建、轮换、限制和撤销 Gateway Key
  • 管理团队、成员、角色和访问权限
  • 配置请求策略、预算、额度及成本告警
  • 查询用量、请求日志、审计日志和调用链路
  • 管理 Webhook、事件订阅、重试与重新投递
  • 对接订阅、账单、充值、订单及账户流程

这部分能力对于企业内部平台、自动化系统和 SaaS 产品可能比单纯的模型调用更加重要。例如,企业可以在内部开发者平台中自动为不同团队创建 Gateway Key 和预算;SaaS 产品可以为每个客户建立独立的 Workspace、权限和使用额度;运维系统也可以通过日志、Trace 和 Webhook 监控异常请求及成本变化……等等。

SDK 解决的不只是接口封装

SDK 在这两套 API 之上,又进一步处理了很多工程问题,包括类型化请求、认证、超时、流式读取、分页、请求元数据、结构化错误、重试以及 Webhook 签名验证。

这些能力单独看都不复杂,但如果每个团队都要重新实现一次,不仅浪费时间,也很容易在生产环境中留下安全和可靠性问题。我们希望通过 SDK,把这些通用能力统一处理好,让开发者可以直接在 OwlVigil 之上构建自己的应用、企业内部 AI 平台,甚至面向客户的 AI 管理产品。

更完整的能力和使用方式,可以查看 OwlVigil Developer Center 以及 Core Concepts

明白,这一节只负责告诉读者“怎么安装、怎么调用、去哪里看文档”,不再重复前面的产品能力。可以改成:

使用 Go SDK

OwlVigil Go SDK 已经开源,可以通过 Go Modules 直接安装:

go get github.com/Syrovex/owlvigil_sdk_go

安装完成后,使用 Gateway Key 创建 Client,就可以调用 OwlVigil Gateway。下面以查询当前 Workspace 可用的模型为例:

client := gateway.NewClient(
    owlvigil.WithAPIKey(
        os.Getenv("OWLVIGIL_GATEWAY_KEY"),
    ),
)

models, meta, err := client.ListModels(
    context.Background(),
)
if err != nil {
    log.Fatal(err)
}

fmt.Println(meta.RequestID, len(models.Data))

如果需要调用 Management API,可以使用 management.NewClient,并传入 OWLVIGIL_API_KEY

client := management.NewClient(
    owlvigil.WithAPIKey(
        os.Getenv("OWLVIGIL_API_KEY"),
    ),
)

这里需要注意,Gateway Key 和 Management API Key 是两套不同的凭证。前者用于应用调用模型,后者用于管理 Workspace、路由、成员、策略和预算等资源,不能混用。生产环境中也不要将它们写入源代码或者提交到 Git 仓库。

仓库中已经提供了模型调用、Streaming、Gateway Key、用量查询、团队管理、Webhook 和多环境配置等可运行示例,可以根据自己的使用场景直接参考。

完整文档和代码:

未来计划

Go SDK 是我们的第一个版本,但不会是最后一个。接下来,我们会陆续推出 Java、Node.js 和 Python SDK,基本覆盖后端服务、AI 应用、数据处理和企业系统中常见的开发语言与场景。

SDK 也不会是一个发布之后就结束的项目。除了持续跟进 OwlVigil 的新能力,我们还会完善示例项目、开发指南和 Recipes。目前,Developer Center、Quickstart、API Reference 和 Go SDK 文档都已经开放: https://owlvigil.com/developer/

如果你正在开发 AI 应用、Agent、企业内部工具,或者希望将模型路由、预算、权限和审计能力集成到自己的系统中,欢迎尝试!我们会不断完善项目,如果在使用过程中遇到问题,或者对现有功能和后续 SDK 有任何建议,欢迎通过 GitHub Issue 或其他方式直接联系我们。

本站原创文章皆遵循“署名—非商业性使用—相同方式共享 4.0 协议 (CC BY-NC-SA 4.0)”。共享、演绎请保留以下标注:

原文作者:Jake Tao,来源:「OwlVigil 开源SDK:一套SDK轻松接入完整的 AI 管控能力」

3
0 0 3

延伸阅读

发表回复

登录后才能评论
分享本页
返回顶部