Skip to main content

Overview

Quraite provides a built-in adapter for LangChain agents. This adapter allows you to integrate LangChain agents with Quraite and run evaluations on them. This adapter supports two ways of capturing the trajectory of the agent:
  • direct conversion of the agent graph’s output to Quraite trajectory format, but this does not capture the latency and token usage.
  • using OpenInference instrumentation.

Prerequisites

  • Agent dependencies: langchain, a supported LLM (for example Gemini via langchain-google-genai), and any tools you want to use.
  • Quraite dependencies: quraite[langchain-oi] package. Optional if you don’t want to capture latency and token usage.

Define Your LangChain Agent

You create a normal LangChain agent first, exactly as you would in any LangChain project.
from dotenv import load_dotenv
from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver


load_dotenv()


def add(a: float, b: float) -> float:
    """Add two numbers."""
    return a + b


def subtract(a: float, b: float) -> float:
    """Subtract two numbers."""
    return a - b


def multiply(a: float, b: float) -> float:
    """Multiply two numbers."""
    return a * b


def divide(a: float, b: float) -> float:
    """Divide two numbers."""
    return a / b


tools = [add, subtract, multiply, divide]


agent = create_agent(
    model="google_genai:gemini-2.5-flash",
    tools=tools,
    system_prompt=(
        "You are a helpful calculator assistant. You must use the tools "
        "according to the BODMAS rule."
    ),
    checkpointer=InMemorySaver(),
)

Set up Tracing

Quraite provides a tracing setup helper. For LangChain, pass the Framework.LANGCHAIN enum:
from quraite.constants.framework import Framework
from quraite.tracing import setup_tracing


tracer_provider = setup_tracing([Framework.LANGCHAIN])

Wrap the LangChain Agent

Wrap the agent with the LangchainAdapter and pass the tracer_provider to it.
from quraite.adapters import LangchainAdapter


adapter = LangchainAdapter(
    agent_graph=agent,
    tracer_provider=tracer_provider,
)

Run the Agent

Once wrapped, you expose the adapter using Quraite’s run_agent helper.
if __name__ == "__main__":
    from quraite import run_agent

    run_agent(
        adapter,
        port=8080,
        host="0.0.0.0",
        tunnel="cloudflare",
    )

End-to-End Examples