aisuite:用一个 API 调用 10+ 大模型厂商的 Agent 开发框架

总结

aisuite 是一个轻量级 Python 库,通过统一 Chat Completions API + Agents API,让开发者用一套代码无缝切换 10+ 家大模型提供商(OpenAI、Anthropic、Google、Ollama 等)。一行改模型名就能换底座,同时自带工具调用、多 Agent 编排和状态持久化能力。今天(2026-07-26)刚登上 GitHub Trending,是当前最热的多模型 Agent 开发框架之一。

功能与原则

aisuite 提供两层抽象:

  • Chat Completions API:统一 OpenAI 风格的接口访问所有 LLM 提供商,换 provider 只需改一个字符串(如 "anthropic:claude-3-5-sonnet")。
  • Agents API:在统一接口之上叠加工具调用(Python 函数自动转 tool schema)、多轮对话循环、内置工具包(files / git / shell)和 MCP 服务器支持。

设计原则:轻量、厂商无关、生产可用——不做臃肿封装,用薄抽象层保持各 provider 原生能力。

认可度

  • GitHub Trending 今日热门(2026-07-26),说明当下开发者关注度极高
  • 衍生项目 OpenWorker(桌面 AI 同事)已独立发布 macOS/Windows 应用
  • npm 包 @alibaba-group/open-code-review 也在用 aisuite,说明其在生产环境已有落地

链接

GitHub:https://github.com/andrewyng/aisuite

原作者

andrewyng(Andrew Ng 团队成员?),专注于 LLM 应用层基础设施开发。

介绍

aisuite 最早想做的是”多提供商聚合”——让开发者不用学各家 SDK,一个接口调通所有模型。在此基础上,它的 Agents API 将工具调用变成一行装饰器,把 Python 函数直接注册为 tool,模型返回 tool_calls 后自动执行、结果回填,全程无需手动写 JSON schema 或循环逻辑。

它还自带文件、Git、Shell 三个工具包,开箱即用。如果想接更多能力,可以接任何 MCP server,aisuite 会自动识别并挂载。

此外,基于 aisuite 构建的 OpenWorker 是一个真正的桌面 AI 助手——能读文件、发邮件、连 Slack、生成 PDF/Word/Excel,支持定时任务,数据全留本地。相当于用 aisuite 做底座,快速搭出了一个生产力 Agent。

特点

  • 一行切换模型client.chat.completions.create(model="openai:gpt-4o", ...) → 换成 "anthropic:claude-3-5-sonnet" 即可
  • 工具调用极简:装饰器 @tool 注册 Python 函数,aisuite 自动生成 schema、自动执行、自动回填结果
  • 多 Agent 编排:Agent 类 + Runner.run(),支持工具包(files / git / shell)即插即用
  • MCP 原生支持:任何 MCP server 可直接接入,无需额外适配
  • 状态持久化:内置 in-memory / file / Postgres 三种 state store,支持跨进程继续对话
  • 全流式输出:stream=True 返回标准 OpenAI 格式 chunk,streaming tool calls 也支持

使用方法

安装

pip install aisuite                          # 基础包
pip install 'aisuite[anthropic]'              # 加指定 provider
pip install 'aisuite[all]'                   # 装所有 provider SDK

快速调用

import aisuite as ai
client = ai.Client()

models = ["openai:gpt-4o", "anthropic:claude-3-5-sonnet"]
messages = [{"role": "user", "content": "用一句话解释量子纠缠"}]

for model in models:
    response = client.chat.completions.create(model=model, messages=messages)
    print(response.choices[0].message.content)

带工具调用的 Agent

import aisuite as ai
from aisuite import Agent, Runner

def will_it_rain(location: str) -> str:
    """查询某地是否下雨"""
    return "YES"

agent = Agent(
    name="weather-agent",
    model="anthropic:claude-sonnet-4",
    tools=[will_it_rain],
)
result = Runner.run(agent, "北京明天下午3点下雨吗?")
print(result.final_output)

使用场景与人群

  • 多模型切换:测试不同 provider 效果、对比模型能力、做 red team
  • Agent 应用开发:快速搭生产级 Agent,集成 tools + MCP + 状态管理
  • 桌面 AI 助手:OpenWorker 方向,本地运行,数据不上云
  • 目标用户:LLM 应用开发者、AI 研究者、想让 AI 操作本地文件的用户

输入与输出案例

案例 1:跨模型对话

Input:{"model": "openai:gpt-4o", "messages": [{"role": "user", "content": "量子纠缠一句话"}]}
Output:两个粒子无论相距多远,对其中一个的测量会瞬间影响另一个的状态。
Input:{"model": "anthropic:claude-3-5-sonnet", "messages": [{"role": "user", "content": "量子纠缠一句话"}]}
Output:量子纠缠是一种现象:两个粒子处于"纠缠态"后,对其中一个的测量结果会立即"决定"另一个粒子的状态,无论它们相距多远。

案例 2:工具调用

Input:Agent.run("帮我查上海今天会不会下雨?")
Output:[调用 will_it_rain(location="上海") → "YES"] → "上海今天会下雨,建议带伞出门。"

GitHub: https://github.com/andrewyng/aisuite

评论区

0 条评论

登录后可评论。

查看完整榜单
查看完整榜单
查看完整榜单