When to use LangChain
- You’re already using LangChain or LangGraph
- You want pre-built agent patterns (ReAct, etc.)
- You need LangChain’s ecosystem of integrations
Create an agent
rayai create-agent my_agent --framework langchain
Wrap any LangChain tool to execute on Ray workers:
from langchain.agents import create_agent
from langchain_community.tools import DuckDuckGoSearchRun
from rayai.adapters import from_langchain_tool
# Wrap for Ray execution (returns a LangChain tool)
search = from_langchain_tool(DuckDuckGoSearchRun(), num_cpus=1)
# Use directly with LangChain agents (requires OPENAI_API_KEY env var)
agent = create_agent(model="openai:gpt-4o-mini", tools=[search])
Wrap Ray tools for use with LangChain agents:
from langchain.agents import create_agent
from rayai import tool
from rayai.adapters import RayToolWrapper, AgentFramework
@tool(desc="Search the web", num_cpus=1)
def search_web(query: str) -> str:
return f"Results for: {query}"
# Wrap for LangChain
wrapper = RayToolWrapper(framework=AgentFramework.LANGCHAIN)
lc_tools = wrapper.wrap_tools([search_web])
# Use with any LangChain agent (requires OPENAI_API_KEY env var)
agent = create_agent(model="openai:gpt-4o-mini", tools=lc_tools)
Use tools from any framework with your LangChain agents. RayToolWrapper auto-detects the source framework and converts tools to LangChain-compatible BaseTool instances:
from langchain.agents import create_agent
from pydantic_ai import Tool as PydanticTool
from rayai.adapters import RayToolWrapper, AgentFramework
# Pydantic AI tool
def multiply(x: int, y: int) -> int:
"""Multiply two numbers."""
return x * y
pydantic_tool = PydanticTool(multiply, name="multiply")
# Plain Python function
def greet(name: str) -> str:
"""Greet someone by name."""
return f"Hello, {name}!"
# Convert ANY tools to LangChain format
wrapper = RayToolWrapper(framework=AgentFramework.LANGCHAIN)
lc_tools = wrapper.wrap_tools([pydantic_tool, greet], num_cpus=1)
# Use with LangChain agent - all tools execute on Ray (requires OPENAI_API_KEY env var)
agent = create_agent(model="openai:gpt-4o-mini", tools=lc_tools)
The wrapper auto-detects: Ray @tool functions, LangChain BaseTool, Pydantic AI Tool, and plain Python callables.
Next steps