Framework guide
LangChain
Use Agent-Gantry with LangChain agents and LCEL chains. This page covers basic setup and the first production-friendly path; continue to the advanced page for dynamic retrieval, LLM calls, and operations.
Basic page: register once, adapt at the edge
- Create a Gantry instance near application startup.
- Register deterministic Python functions with descriptions and input schemas.
- Export framework-native tools for LangChain immediately before constructing the agent, graph, pipeline, or crew.
- Keep authorization, rate limits, and audit metadata in Gantry instead of duplicating it inside framework glue code.
from agent_gantry import AgentGantry
from agent_gantry.langchain import LangChainAdapter
gantry = AgentGantry()
def get_order_status(order_id: str) -> str:
"""Return the current shipping status for an order."""
return "in_transit"
gantry.register_tool(get_order_status, tags=["support", "orders"])
adapter = LangChainAdapter(gantry)
framework_tools = await adapter.select("check an order", limit=3) First tool-calling loop
Let LangChain own the conversation lifecycle while Gantry owns the tool catalog. Start with a small tool set and assert that the framework receives only safe, documented functions.
Basic testing checklist: verify tool names, JSON schemas, auth metadata, and a happy-path invocation before wiring a live model.
Basic LLM call guidance
For early prototypes, use the model client already recommended by LangChain. Wrap that client with a thin policy function that records model name, prompt tokens, completion tokens, tool calls, and latency. Once the integration stabilizes, move the policy into Agent-Gantry's LLM adapter layer so other frameworks share the same rules.