Run CrewAI on Mingles Router
Multi-agent crews are exactly the workload where per-token price compounds — every agent's turn resends the shared context.
Pick your model and paste your key — every command and value on this page updates live.
Endpoint: https://router.mingles.ai/v1 · key stays in your browser ·
no key entered? commands show <your-key>.
Wire it up
1. Build one LLM and share it
The custom_openai flag is what puts it in OpenAI-compatible mode:
from crewai import LLM
llm = LLM(
model="deepseek-ai/DeepSeek-V4-Flash-0731",
custom_openai=True,
base_url="https://router.mingles.ai/v1",
api_key="<your-key>",
) 2. Give it to your agents
from crewai import Agent
researcher = Agent(
role="Researcher",
goal="Find and summarise sources",
backstory="Thorough, cites everything.",
llm=llm,
) 3. Or set it once in the environment
export OPENAI_API_KEY="<your-key>"
export OPENAI_BASE_URL="https://router.mingles.ai/v1" Exact values
| base_url | https://router.mingles.ai/v1 |
| api_key | <your-key> |
| model | deepseek-ai/DeepSeek-V4-Flash-0731 |
Switch model
Give different agents different LLM objects — a cheap model for the researchers, a stronger one for the agent that writes the final answer. That is where a crew’s cost actually goes.
Before you file a bug: read the limits
Reasoning models spend the output budget on internal thinking, output is capped at 8192 tokens, there is no KV cache, and there are no built-in web tools. Most “it broke on Mingles Router” reports are one of these. See Model limits & behavior →
Frequently asked
Why is my crew so expensive? +
Crews resend the shared context on every agent turn, so cost grows with agents multiplied by turns, not with output length. Trimming the shared context and putting the cheap model on the high-turn agents is usually a bigger saving than changing provider.
Does CrewAI use LiteLLM underneath? +
Historically yes, which is why openai/-prefixed model strings also work. The custom_openai flag on the LLM object is the current documented path.