CrewAI

Route CrewAI agent teams through BrainstormRouter.

Setup

pip install crewai openai brainstormrouter

Configuration

CrewAI uses the OpenAI SDK under the hood. Point it at BrainstormRouter:

import os

os.environ["OPENAI_API_BASE"] = "https://api.brainstormrouter.com/v1"
os.environ["OPENAI_API_KEY"] = "br_live_..."

Basic crew

from crewai import Agent, Task, Crew

researcher = Agent(
    role="Research Analyst",
    goal="Find key market trends",
    backstory="Expert at analyzing market data",
    llm="anthropic/claude-sonnet-4",
)

writer = Agent(
    role="Content Writer",
    goal="Write compelling reports",
    backstory="Expert technical writer",
    llm="openai/gpt-4o",
)

task = Task(
    description="Research AI gateway market and write a 500-word summary",
    agent=researcher,
)

crew = Crew(
    agents=[researcher, writer],
    tasks=[task],
)

result = crew.kickoff()

Cost optimization

Use BrainstormRouter presets to optimize cost across agents:

# Expensive tasks get the quality model
researcher = Agent(
    role="Research Analyst",
    llm="@preset/high-quality",  # anthropic/claude-sonnet-4, quality strategy
)

# Simple tasks get the cheap model
formatter = Agent(
    role="Formatter",
    llm="@preset/fast-cheap",  # openai/gpt-4o-mini, price strategy
)

With memory

Pre-load project context so all agents share knowledge:

from brainstormrouter import BrainstormRouter  # Python SDK (coming soon)

# Or use curl/requests:
import requests

requests.post(
    "https://api.brainstormrouter.com/v1/memory/entries",
    headers={"Authorization": "Bearer br_live_..."},
    json={"fact": "Company sells Widget Pro to enterprises", "block": "project"},
)

Benefits over direct API calls

  • Automatic fallbacks: If Claude rate-limits, GPT-4o takes over seamlessly
  • Cost tracking: See per-agent, per-task cost in the dashboard
  • Memory sharing: All agents access the same persistent memory
  • Guardrails: Content safety applied to all agent outputs