The whole change, for most apps:
Swap the base URL and use an itr_rt_* runtime key. Every model call, tool call and MCP request is then decided before it runs, and shows up in Traffic with the reason.
- base_url = "https://api.openai.com/v1"
- api_key = OPENAI_API_KEY
+ base_url = "https://intertrace.fly.dev/v1"
+ api_key = INTERTRACE_RUNTIME_API_KEY # itr_rt_…+SDKs & gateways
Swap the base URL; keep your code.
+Agent frameworks
Route every model call a framework makes.
LangChain
▶ videoChatOpenAI against Intertrace — chains and agents keep working, every call is decided.
Set up →
LlamaIndex
RAG pipelines whose model calls and retrieved content pass through the layer.
Set up →
CrewAI
▶ videoProtect a whole crew by pointing its LLM at Intertrace — no agent rewrites.
Set up →
OpenAI Agents SDK
Set a default client once; every agent run goes through the layer.
Set up →
LangGraph
Graph agents on the Intertrace edge, with tools wrapped for pre-action authorization.
Set up →
Mastra
Use the runtime package for edge config and wrap tools with pre-action checks.
Set up →
Pydantic AI
An OpenAI-compatible model pointed at Intertrace.
Set up →
+Coding agents
Guardrails on the agents that write and run code.
+Chat apps
Put self-hosted chat UIs behind policy.
+MCP
Authorize every tool call before it runs.
+Anything else
Speaks OpenAI? It works.
Any client that lets you set an OpenAI-compatible base URL can go through Intertrace. For raw HTTP, see the curl guide in the docs.
+ The AI watching your AI
Connected in minutes.
Get a runtime key, change one line, and watch your first decision land in Traffic.