Skip to main content
Use Case · CrewAI

Your crew has five agents. Each one should have different permissions.

CrewAI makes multi-agent orchestration simple. Civic makes sure each agent in the crew only accesses what it needs.

use case / crewai

The research agent used the same API key as the billing agent. It burned through the quota.

Just imagine, one day…

You build a CrewAI crew with five agents: researcher, analyst, writer, reviewer, and publisher. They share a set of API tools for search, databases, and external services. Each agent has different responsibilities but identical access.

The research agent enters a loop during a web search task. It calls the search API hundreds of times with variations of the same query. Because all agents share the same credentials, the rate limit applies to the entire crew. The billing agent can't process payments. The analyst can't query the database. One runaway agent locks out the entire team.

Shared credentials mean one agent's mistake is every agent's problem.

Without per-agent limits, one runaway agent blocks the entire crew.

It does things you did not intend

The research agent ran 500 search calls trying to refine one query. Because all agents share credentials, the rate limit knocked out the entire crew.

You cannot prove what happened

All five agents share the same API key. You can't tell which agent made which calls. The rate limit log shows 500 calls, but not who triggered them.

You cannot stop it fast enough

Stopping the researcher means stopping the crew. There's no way to revoke one agent's access without affecting the others.

It gets confused and you never know

The search API returns slightly different results each time. The researcher thought each variation was new data and kept querying.

Connect CrewAI through Civic in three steps

CrewAI Agent

Create profiles: researcher, analyst, billing.

Researcher: search API, 50 calls/hr.

Analyst: database, read-only.

Billing: payment API, write access.

Done. 3 profiles configured:

✓ researcher — search, 50/hr limit

✓ analyst — db read-only

✓ billing — payments, write

The same scenario. Different outcomes.

Without Civic, one agent's rate limit blocks the entire crew. With Civic, each agent has its own limit.

$ python crew.py --start
[researcher] searching... attempt #380
[search:api] shared rate limit hit
[billing] ✘ can't process payments
[analyst] ✘ can't query database
$ # one agent's loop. entire crew down.
$ python crew.py --start
[researcher] searching... attempt #50
[nexus] researcher: rate limit reached (50/hr)
[nexus] ✘ researcher paused — alert sent
[billing] processing payments... ✓
[analyst] querying database... ✓
$ # researcher paused. rest of crew unaffected.

Ship safer with Civic

We'll help you implement authenticated, scoped, and auditable access without slowing down your build.