# any-llm：统一接口访问多 LLM 提供商的 Python SDK

> Mozilla AI 推出的开源 Python SDK，通过单一统一接口与 OpenAI、Anthropic、Mistral、Ollama 等多个 LLM 提供商通信，支持直接调用和可选的网关代理模式，简化多模型集成与成本管理。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-06T17:15:06.000Z
- 最近活动: 2026-04-06T17:22:46.296Z
- 热度: 159.9
- 关键词: LLM, Python SDK, Mozilla AI, 多提供商, OpenAI, Anthropic, API 网关, 开源
- 页面链接: https://www.zingnex.cn/forum/thread/any-llm-llm-python-sdk
- Canonical: https://www.zingnex.cn/forum/thread/any-llm-llm-python-sdk
- Markdown 来源: ingested_event

---

# any-llm：统一接口访问多 LLM 提供商的 Python SDK

## 项目背景与问题定义

当前的大语言模型（LLM）生态系统呈现出高度碎片化的状态。虽然 OpenAI 的 API 已成为事实上的行业标准，但不同提供商在参数命名、响应格式和功能实现上存在细微但重要的差异。这种碎片化给开发者带来了实际困扰：当需要在项目中切换或同时使用多个 LLM 提供商时，通常需要为每个提供商编写不同的集成代码，维护成本高且容易出错。

Mozilla AI 推出的 any-llm 项目正是为了解决这一问题。它提供了一个统一的 Python SDK，让开发者能够使用单一接口与多个 LLM 提供商通信，只需更改模型字符串即可在不同提供商之间切换，无需修改核心代码逻辑。

## 现有解决方案的局限性

在 any-llm 出现之前，社区已有一些尝试解决多提供商集成问题的方案，但各自存在局限。LiteLLM 是目前最流行的解决方案之一，但它选择重新实现各提供商的接口而非使用官方 SDK，这可能导致兼容性问题和更新延迟。AISuite 采用了更清晰的模块化设计，但缺乏积极维护、全面测试和现代 Python 类型标准支持。

一些代理框架如 Agno 要么依赖 LiteLLM，要么自行实现提供商集成，进一步加剧了生态碎片化。此外，像 OpenRouter 和 Portkey 这样的解决方案要求通过托管代理服务器转发所有请求，引入了额外的延迟和隐私顾虑，不适合对数据安全性要求高的场景。

## any-llm 的核心设计理念

any-llm 的设计遵循几个关键原则。首先，它优先使用官方提供商 SDK，确保最大兼容性和及时的功能更新。其次，它保持框架无关性，可以在不同项目和用例中灵活使用，不绑定特定应用框架。第三，它不需要代理服务器，直接连接到 LLM 提供商，降低延迟和复杂性。最后，它提供完整的 Python 类型提示，带来更好的 IDE 支持和更清晰的错误信息。

该项目已在 Mozilla AI 自己的生产工具（如 any-agent）中得到实战验证，证明了其可靠性和实用性。

## 安装与基本使用

安装 any-llm 非常直观，支持按需安装特定提供商的依赖。例如，只安装 Mistral 和 Ollama 支持可以使用 pip install 'any-llm-sdk[mistral,ollama]'，而安装所有支持的提供商则使用 pip install 'any-llm-sdk[all]'。

基本使用只需几行代码。首先设置对应提供商的 API 密钥环境变量，然后导入 completion 函数并调用：

```python
from any_llm import completion

response = completion(
    model="mistral-small-latest",
    provider="mistral",
    messages=[{"role": "user", "content": "Hello!"}]
)
```

切换提供商只需更改 provider 和 model 参数，代码结构保持不变。对于从 LiteLLM 迁移的用户，any-llm 完全兼容 LiteLLM 的环境变量命名，只需更新导入语句和模型字符串格式（从 openai/gpt-4o 改为 openai:gpt-4o）即可完成迁移。

## 两种使用模式对比

any-llm 提供了两种主要的使用方式，适用于不同场景。

直接 API 函数（completion）适合脚本、笔记本和单次请求场景。这种方式每次调用都会创建新的客户端实例，是无状态的设计，使用简单直接。

AnyLLM 类（AnyLLM.create）则更适合生产应用和多次请求场景。它会复用客户端连接，支持连接池，在需要频繁调用时提供更好的性能。两种方式支持完全相同的功能特性，包括流式响应、工具调用和 Responses API。

## any-llm-gateway 企业级功能

对于需要预算管理、使用分析和多租户支持的生产环境，any-llm 提供了可选的 any-llm-gateway。这是一个基于 FastAPI 的代理服务器，提供企业级功能：

预算管理方面，支持设置每日、每周或每月的支出限额，并自动重置。API 密钥管理允许发行、撤销和监控虚拟 API 密钥，无需暴露真实的提供商凭证。使用分析功能追踪每次请求的完整令牌数、成本和元数据。多租户支持则允许跨用户和团队管理访问权限和预算。

网关位于应用和 LLM 提供商之间，暴露 OpenAI 兼容的 API，可与任何支持的提供商配合使用。对于希望使用托管服务的用户，any-llm 平台（any-llm.ai）提供了管理控制平面，用于密钥管理、使用追踪和跨提供商成本可视化。

## 支持的提供商与模型

any-llm 支持广泛的 LLM 提供商，包括 OpenAI、Anthropic、Mistral、Ollama（本地部署）、Azure OpenAI、vLLM、LiteLLM 代理等。对于 Anthropic 的 Claude 模型，可以通过 LiteLLM 代理或直接支持进行调用。

模型选择方面，any-llm 将模型标识符直接传递给提供商，因此可以使用各提供商支持的任何模型。用户可以通过提供商文档或 any-llm 的 list_models API（如果提供商支持）查询可用模型列表。

## Responses API 支持

对于实现了 OpenAI 风格 Responses API 的提供商，any-llm 提供了 responses 和 aresponses 函数。这是 OpenAI 较新的 API 格式，提供了更结构化的交互方式：

```python
from any_llm import responses

result = responses(
    model="gpt-4o-mini",
    provider="openai",
    input_data=[
        {"role": "user", "content": [{"type": "text", "text": "Summarize this."}]}
    ]
)
```

## 项目优势总结

any-llm 的主要优势包括简洁统一的接口、完整的类型提示支持、使用官方 SDK 确保兼容性、框架无关设计、生产环境验证、灵活的部署选项（直接连接或网关代理），以及活跃的 Mozilla AI 社区支持。

对于希望简化多 LLM 提供商集成的开发者，any-llm 提供了一个干净、现代且经过实战验证的解决方案。无论是快速原型开发还是生产环境部署，它都能满足需求，同时保持代码的简洁和可维护性。
