Personal
$10/month
- 50M tokens a week
- 20 requests per minute
- For one person
A crew is several agents taking turns, which means several model calls for every job you hand it. CrewAI lets you staff all of them from one LLM object: give it openai/pareto and the Unbiased base URL, pass it to each agent, and the roles, tasks and process stay as you wrote them. Each call goes to Pareto, which selects frontier and open models and blends their outputs into one answer.
Tested live with CrewAI 1.15.2850M tokens a week
CrewAI talks to OpenAI-compatible endpoints through its LLM class. Build one with the Unbiased base URL and the model openai/pareto, then hand it to every agent in the crew.
Choose a plan, then create a key in the Unbiased platform. New accounts are reviewed and approved by a person before the key works.
Run pip install crewai on Python 3.10 to 3.13. The OpenAI client library comes with it; you do not need an OpenAI account.
Pass model="openai/pareto", base_url="https://api.unbiased.ai/v1" (keep the /v1) and your key as api_key. The openai/ prefix tells CrewAI which format to speak; the part after it, pareto, is what Unbiased receives.
Pass llm=llm to each Agent(...). An agent without it falls back to CrewAI’s default model and your environment settings, which may not be Pareto.
Run your script as usual. With verbose=True you can watch each agent start, answer and hand its work to the next task.
pareto). A two-agent crew ran in sequence: a researcher listed three facts about Python's range() and a writer turned them into a brief under 60 words. Run record.pip install crewai
from crewai import Agent, Crew, Process
from crewai import LLM, Task
llm = LLM(
model="openai/pareto",
base_url="https://api.unbiased.ai/v1",
api_key="your-unbiased-api-key",
)
researcher = Agent(role="Researcher", goal="Find three facts about {topic}",
backstory="You check sources and keep notes short.", llm=llm)
writer = Agent(role="Writer", goal="Turn research notes into a short brief",
backstory="You write plainly for busy readers.", llm=llm)
research = Task(description="List three facts about {topic}.",
expected_output="Three numbered facts", agent=researcher)
brief = Task(description="Write a brief from the research notes.",
expected_output="One paragraph under 60 words", agent=writer,
context=[research])
crew = Crew(agents=[researcher, writer], tasks=[research, brief],
process=Process.sequential, verbose=True)
print(crew.kickoff(inputs={"topic": "Python's range()"}))# Agents without llm= read these
export MODEL=openai/pareto
export OPENAI_BASE_URL=https://api.unbiased.ai/v1
export OPENAI_API_KEY=your-unbiased-api-keyIn real code, read the key from an environment variable rather than writing it into the file. To switch off CrewAI’s telemetry and tracing, set CREWAI_DISABLE_TELEMETRY=true, OTEL_SDK_DISABLED=true and CREWAI_TRACING_ENABLED=false.
One object changes, and every agent you pass it to follows. Roles, tasks and the order they run in stay as written.
context hand-offs and Process.sequentialUnchangedkickoff(inputs=...) and verbose outputUnchangedopenai/paretoapi.unbiased.ai/v1Pareto is Unbiased’s blended AI model. On each request it selects frontier and open models and blends their outputs into one answer, so CrewAI talks to one model string, pareto, and never has to pick.
“When the frontier improves, Pareto improves; when frontier prices fall, you should benefit.” From the pricing page.
How a Pareto answer gets made →Agents make many model calls per task, so the price of a finished task matters more than the price of a token. The model card publishes both for Pareto on two public agent benchmarks.
Pareto 26.10, preliminary October 1, 2026 runs that may change; denominators and the cost method still require confirmation. Cost is the reported mean USD per task at API rates, not an estimate for your workload. Model card and method.
One API key works across CrewAI and any other tool you point at Pareto. Pick a monthly allowance, or pay per token on Team.
$10/month
$100/month
Pay as you go
Subscriptions are for one person and are not unlimited. New API accounts are reviewed by a person before access turns on, and commercial or production use needs a separate written agreement. Rates and limits are on Pricing.
Yes, in our test. CrewAI’s LLM class sends OpenAI Chat Completions requests to any base_url, and Unbiased accepts that format. We ran CrewAI 1.15.28 on Python 3.12 against Pareto on October 20, 2026: a researcher and a writer ran in sequence, and the writer turned the researcher’s notes into a short brief. Format compatibility is not a promise that every CrewAI feature works, so tell us if one doesn’t.
CrewAI’s docs say to always include a provider prefix. The openai/ prefix makes CrewAI use its built-in OpenAI provider, which ships with CrewAI, so you do not need LiteLLM. CrewAI also accepts custom_openai=True for OpenAI-compatible endpoints; it is optional here, and our live run worked without it. Unbiased receives the model name pareto. Type it yourself: Unbiased does not serve a model list.
That agent probably has no llm=. CrewAI then uses its default model, or whatever MODEL and the OPENAI_* variables say. Pass the same LLM object to every agent, or set the environment variables from the setup above.
Yes. Each agent takes its own llm, so you can give Pareto to some agents and another provider to the rest. Agents you point at Pareto use your Unbiased plan; the others bill wherever their provider bills.
Personal plans are for one person’s own work and experiments. Commercial or production use needs a separate written agreement with Unbiased. If you build agents for others, see the page for agent builders.
No. Pareto is Unbiased’s model. CrewAI is made by CrewAI, and Unbiased is not affiliated with or endorsed by them. You keep CrewAI and point it at the Unbiased API.
Requests over your plan’s limits return an HTTP 429 error. Personal includes 50M tokens a week and 20 requests per minute. Personal Max raises that to 600M a week and 60 requests per minute for $100/month. Team uses prepaid pay-as-you-go credits with no weekly token cap.
No. You send every request to one model string, pareto. Pareto selects frontier and open models for each request and blends their outputs into one answer.
Personal and Personal Max are not our zero data retention tier: prompts and responses may be kept up to 30 days, as section 5(c) of the Terms explains. For work that must not be kept, ask about the Zero Data Retention API on the Private AI page.
The same key and the same model string go into each of these. See them all.
Product names belong to their owners. Except where a guide says otherwise, Unbiased is not affiliated with or endorsed by the makers of the tools on this page.
One LLM object, one key and the same agents. Pareto starts at $10 a month for 50M tokens a week.