Agent framework

OrcaRouter tools in LangChain

Load OrcaRouter tools as LangChain tools from the functions export and give them to any LangChain agent; each call runs the tool through OrcaRouter.

Details

Kind
Agent framework
Connects through
Function calling

Set it up

  1. Install the packages: pip install -U langchain langchain-openai requests.
  2. Set ORCAROUTER_API_KEY to an API key from your OrcaRouter console.
  3. Load tools for a task with the helper below, then pass them to create_agent.

Code

Load OrcaRouter tools
# orcarouter_tools.py
import os

import requests
from langchain_core.tools import StructuredTool

BASE = "https://api.orcarouter.ai"
HEADERS = {"Authorization": f"Bearer {os.environ['ORCAROUTER_API_KEY']}"}


def _runner(name):
    def run(**tool_input):
        r = requests.post(f"{BASE}/v1/tools/{name}/run", json={"input": tool_input}, headers=HEADERS, timeout=120)
        r.raise_for_status()
        return r.json()["data"]["output"]

    return run


def orcarouter_tools(query, limit=5):
    """Find catalog tools for a task and load them as LangChain tools."""
    found = requests.post(f"{BASE}/v1/tools/discover", json={"q": query, "limit": limit}, headers=HEADERS, timeout=30)
    found.raise_for_status()
    ids = ",".join(tool["id"] for tool in found.json()["data"]["results"])
    if not ids:
        return []
    fns = requests.get(
        f"{BASE}/v1/tools/functions",
        params={"ids": ids, "format": "openai"},
        headers=HEADERS,
        timeout=30,
    )
    fns.raise_for_status()
    return [
        StructuredTool.from_function(
            func=_runner(spec["function"]["name"]),
            name=spec["function"]["name"],
            description=spec["function"]["description"],
            args_schema=spec["function"]["parameters"],
        )
        for spec in fns.json()["data"]["tools"]
    ]
Use them in an agent
import os

from langchain.agents import create_agent
from langchain_openai import ChatOpenAI
from orcarouter_tools import orcarouter_tools

model = ChatOpenAI(
    model="openai/gpt-5-mini",
    base_url="https://api.orcarouter.ai/v1",
    api_key=os.environ["ORCAROUTER_API_KEY"],
)
agent = create_agent(model, tools=orcarouter_tools("tiktok user profile"))
result = agent.invoke({"messages": [{"role": "user", "content": "How many followers does @nasa have on TikTok?"}]})
print(result["messages"][-1].content)

Recipes to try with LangChain

© 2026 OrcaRouter

For Providers

Run an inference platform? Get your models on OrcaRouter.

providers@orcarouter.ai

Join our community

Discordsupport@orcarouter.aiXLinkedInGitHubYouTube