OpenRouter把自家那套模型路由能力,第一次装进了官方的LangChain集成包里。Python侧叫langchain-openrouter,TypeScript侧叫@langchain/openrouter。

装上它们,就能在几乎不改动原有代码的前提下,把LangChain应用接上OpenRouter背后400多款模型与70多家提供商。

一、以前怎么干?绕路。现在怎么干?直接装。

过去要在LangChain里用OpenRouter,开发者惯用的“偏方”是用ChatOpenAI再覆写base_url指到OpenRouter的端点。能用,但别扭——它本质上是在“假装”自己是OpenAI的客户端,碰到OpenRouter特有的功能就抓瞎了。

如今专用封装ChatOpenRouter把这件别扭事接了下来。它本质上是对OpenRouter兼容OpenAI的API做了一层类型化包装,让模型路由器像普通聊天模型一样直接嵌进链或智能体里。

二、真正值钱的是它替你揽下的路由脏活

你的链代码只需要调用一次ChatOpenRouter,剩下的全交给路由层。

自动负载均衡:路由层会综合考虑价格、延迟和吞吐量,帮你选最合适的提供商。

规避故障提供商:自动规避最近30秒内出过故障的提供商。

跨提供商故障转移:一旦某个提供商挂掉,自动切到备选,链本身对这些重试和切换毫无感知

未完成不收费:未成功完成的请求不产生费用。

按价格做负载均衡:默认按价格分配流量,省钱这件事也悄悄帮你办了。

三、换模型?改一行字符串就够了

模型参数采用provider/model的slug格式。只改这一个字符串,链其余的提示词、工具、输出全部原封不动——anthropic/claude-sonnet-4.5换成openai/gpt-5-mini或deepseek/deepseek-r1,不过是一行字的事。

流式响应、bind_tools工具调用、with_structured_output结构化输出,这些功能依然是一等公民。

四、想更精细?给你留了后门

不想完全交给路由层自动决策?还有两个控制接口:

用openrouter_provider指定提供商偏好顺序。

用route="fallback"配合models数组做跨模型故障转移。

五、五分钟跑通:三步上手

第一步:安装

Python:

pip install -U langchain-openrouter
export OPENROUTER_API_KEY="sk-or-..."

TypeScript:

npm install @langchain/openrouter @langchain/core

第二步:实例化

from langchain_openrouter import ChatOpenRouter

model = ChatOpenRouter(
    model="anthropic/claude-sonnet-4.5",
    temperature=0,
    max_tokens=1024,
)

第三步:调用

response = model.invoke("用一句话总结这个工单。")
print(response.content)

TypeScript写法几乎一样。

六、对开发者意味着什么?

对已经把OpenRouter绑进工作流的团队来说,这套专用包把“模型路由”从一处要反复折腾的工程负担,削成了一句配置。

当大模型供应的入口被收进同一个端点,开发者要操心的,似乎只剩下该让哪块脑子来回答问题。