资讯动态

一键切换LLM厂商:OpenRath Provider让Agent代码与模型供应商解耦

发布时间:2026/10/23 19:55:21 来源:尧图企业网站定制
【免费下载链接】OpenRathAn open-source, PyTorch-like runtime for dynamic multi-agent and multi-session workflows.项目地址https://gitcode.com/gh_mirrors/op/OpenRath点击查看免费下载OpenRath 是一个面向多智能体、多会话工作流的开源 Python 运行时。它用一个叫Provider的轻量对象来承载全部模型路由信息让你可以一键切换 LLM 厂商从 OpenAI 兼容接口换成 Anthropic只需改一个参数Agent、Session、工具与记忆代码完全不动。本文带你理解这套「模型供应商解耦」机制的设计与用法。为什么 Agent 项目需要Provider 不少 Agent 项目在起步时把厂商 SDK 直接写死在业务代码里某处调用 OpenAI 的客户端、某处解析它的流式分块、某处处理它的错误码。于是想换一家模型供应商时往往要翻遍代码逐个替换——这就是典型的厂商锁定。OpenRath 的解法是把跟哪家厂商、用哪个模型、怎么鉴权、怎么重试这些信息从业务流程里彻底剥离收敛到一个不可变的Provider对象上。它的核心定义位于 src/rath/llm/provider.pyProvider( provider_kindanthropic, # openai / anthropic / litellm modelclaude-opus-4-7, api_key..., # 可省略自动从环境变量/配置文件解析 base_urlNone, # OpenAI 兼容网关可自定义 temperature0.7, max_tokens256, )一个对象里装下了路由provider_kind、身份api_key、base_url、采样参数temperature、top_p、stop等、重试策略retry_max_attempts以及 Token 预算护栏budget_total_tokens。切换厂商就等于换一个Provider实例。Provider 是 Agent 的可插拔参数 在 OpenRath 的架构里flow.Agent把Provider当作一个普通参数接收——就像 PyTorch 里nn.Parameter之于模型。官方示例图直观展示了这一点每个AgentParam都持有一份独立的Provider不同 Agent 甚至可以用不同厂商的模型。图来源assets/readme/workflow.png。可以看到 Provider 只负责给 Session 循环提供模型调用Session 状态、fork/merge 会话图、工具执行与压缩器都与之无关。三种切换方式代码、配置文件、环境变量 ⚙️OpenRath 提供了三种粒度按场景任选其一方式一代码里直接构造最灵活适合在运行时按条件选厂商比如线上用便宜模型、评测用旗舰模型。参考官方示例 example/10_provider_variation.pyprovider Provider( provider_kindanthropic, modelclaude-opus-4-7, max_tokens256, ) agent flow.Agent(You are a concise assistant., provider)方式二写入配置文件按名字引用在~/.openrath/config.json中声明多个命名 Provider再用Provider.from_config()一行取用{ llm: { default_provider: openai-main, providers: { openai-main: { provider_kind: openai, model: gpt-4o }, claude: { provider_kind: anthropic, model: claude-opus-4-7 } } } }provider Provider.from_config(claude) # 换模型改配置文件即可 provider Provider.from_config(openai-main, api_keyad-hoc) # 单项覆盖配置结构定义在 src/rath/config/schema.py注意api_key保存时会自动外置到credentials.json避免密钥明文散落在配置里。方式三环境变量CI/容器场景最省事不写任何代码只导出环境变量即可export OPENAI_API_KEYsk-... export OPENAI_BASE_URLhttps://your-gateway/v1 # 可选任意 OpenAI 兼容网关 export OPENAI_DEFAULT_MODELyour-model-name共享工具 example/_shared/provider.py 会按进程环境变量 → 配置文件default_provider的优先级解析出Provider。由于默认走 OpenAI 兼容协议base_url指向 vLLM、Ollama、网关代理等都能直接跑。注册表分发新增厂商不用改核心代码 Provider只是一个意图描述真正把请求发出去的是各家适配器。OpenRath 用注册表模式完成分发核心实现位于 src/rath/llm/registry.py内置适配器openaisrc/rath/llm/openai/与anthropicsrc/rath/llm/anthropic/在导入时自动注册litellmsrc/rath/llm/litellm/client.py则借助 LiteLLM 一站式接入 100 家供应商。单一调度点会话循环统一调用chat_client_for(provider)按provider_kind取到对应客户端会话层不再出现任何if provider anthropic式判断。客户端缓存按kind base_url api_key model缓存已构建的 SDK 客户端重复运行不重复建连未显式指定api_key的 Provider 不会进缓存防止环境变量变动后拿到过期凭据。可扩展第三方调用register_chat_client(kind, factory)即可注册自己的厂商无需改动核心代码。from rath.llm import register_chat_client, registered_kinds print(registered_kinds()) # (anthropic, litellm, openai) register_chat_client(my-vendor, lambda provider: MyVendorClient(provider))实战同一份 Agent 代码跑两家厂商 ✅仓库自带的第 10 级示例就是为这个场景准备的——同一个flow.Agent、同一个 Session只换Providerpython example/10_provider_variation.py # OpenAI 兼容默认 python example/10_provider_variation.py anthropic # 需要 ANTHROPIC_API_KEY示例说明见 example/README.md其核心思想一句话概括切换 LLM 厂商时唯一变化的东西就是Provider。切换厂商后哪些东西保持不变 ️这正是解耦的价值所在。无论底层模型来自哪家公司下面这些能力都由 OpenRath 统一提供与provider_kind无关能力说明Session 会话状态结构化消息块、fork/detach/merge 会话图、血缘追踪工具调用内置文件/Shell 工具、自定义工具、MCP 工具统一流式事件记忆系统recall / commit 与厂商无关只通过 embedding/chat 间接使用 Provider重试与预算厂商瞬时错误由retry_with_backoff统一退避重试budget_total_tokens统一做 Token 护栏多智能体协作的全景可以参看项目架构图Provider 只是其中一块可替换的电池图来源assets/readme/diagrams/multi-agent-multi-session.png。小结 Providersrc/rath/llm/provider.py是 OpenRath 中唯一的模型供应商入口装下路由、鉴权、采样、重试与预算参数切换 LLM 厂商只需换一个Provider代码构造、config.json命名配置、环境变量三条路都支持openai/anthropic/litellm开箱即用注册表src/rath/llm/registry.py让新增厂商不改核心代码Session、工具、记忆、重试在切换后保持完全一致想动手试试直接从 example/10_provider_variation.py 跑起一条命令体验同一份 Agent 代码在不同模型供应商下的行为。赞分享【免费下载链接】OpenRathAn open-source, PyTorch-like runtime for dynamic multi-agent and multi-session workflows.项目地址https://gitcode.com/gh_mirrors/op/OpenRath点击查看免费下载相关推荐AxonHub 开源 AI 网关完全指南任意 SDK 调用多供应商大模型、零代码切换供应商AxonHub 开源 AI 网关完全指南任意 SDK 调用多供应商大模型、零代码切换供应商 AxonHub 是一个面向 AI 应用的统一网关AI GatewAI 应用API网关LLM 网关后端前端5分钟切换10LLM模型Bisheng多供应商无缝集成指南5分钟切换10LLM模型Bisheng多供应商无缝集成指南 还在为切换不同大语言模型LLM供应商API而重构代码Bisheng让你一次集成无缝切换GAI 应用AI AgentLLMOps工作流自动化RAG后端前端QueryWeaver多LLM提供商配置OpenAI、Gemini、Claude、Ollama一键切换完整教程QueryWeaver多LLM提供商配置OpenAI、Gemini、Claude、Ollama一键切换完整教程 QueryWeaver 是一款开源的 T创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑