OpenRouterは、自社のモデルルーティング機能を初めて公式のLangChain統合パッケージに組み込みました。Python側では「langchain-openrouter」、TypeScript側では「@langchain/openrouter」となり、開発者はこれにより元のコードをほとんど変更することなく、LangChainアプリケーションをOpenRouterの400を超えるモデルと70以上のサプライヤーに接続できます。

これまでLangChainでOpenRouterを使用するには、通常ChatOpenAIを使ってbase_urlを相手のエンドポイントに上書きするという間違った方法が使われていました。これは一種の曲がり道でした。今や専用ラッパーであるChatOpenRouterがこの不便な作業を受け持ちます。これはOpenRouterがOpenAI APIと互換性があることを基盤として、型付きのラッパーを追加することで、モデルルーターを通常のチャットモデルのように直接チェーンやスマートエージェントに埋め込むことを可能にします。

image.png

本当に価値のあるのは、このルーティングの面倒な作業をチェーンコードに引き受けたことです。ChatOpenRouterを指すとき、ルーティング層は自動的にロードバランシングを行い、過去30秒以内に障害が発生したサプライヤーを回避し、必要に応じてサプライヤー間でのフェールオーバーを行います。一方で、チェーン自体はこれらのリトライや切り替えに気づくことすらありません。さらに素晴らしいのは課金ルールです:失敗したリクエストは料金がかからないだけでなく、デフォルトでは価格に基づいたロードバランシングを行うため、節約も静かに行われます。モデルを変えることは極めてシンプルになります。

モデルパラメータはprovider/modelのslug形式で指定され、この1つの文字列を変えるだけで、チェーンの他のプロンプト、ツール、出力は一切変更せずそのままです。たとえば、anthropic/claude-sonnet-4.5をopenai/gpt-5-miniまたはdeepseek/deepseek-r1に変えることは、一文の変更に過ぎません。ストリーミングレスポンス、bind_toolsツール呼び出し、with_structured_output構造化出力などはすべて第一級のサポートがあります。より細かくルーティングを制御したい場合は、openrouter_providerでサプライヤーの優先順位を指定したり、route="fallback"を使ってmodels配列でモデル間のフェールオーバーを設定することもできます。

image.png

すでにOpenRouterをワークフローに組み込んでいるチームにとって、この専用パッケージは「モデルルーティング」を繰り返し煩わせるエンジニアリングの負担から、1つの設定にまで削減しました。大規模言語モデルの入力が同じエンドポイントに収められると、開発者が心配すべきは、どの脳を使えば質問に答えられるかだけになります。