Home / Use cases / crewai

Permissions for CrewAI crews

As your crew of agents grows, so does its reach. Kynara governs which agent and task can call which tool — with approvals for high-risk actions and a full audit trail.

QuickstartTry the sandbox

The problem

Multi-agent crews multiply the surface area: more agents, more tools, more autonomous handoffs. Without per-action authorization, any agent in the crew can use any tool it's wired to — and a compromised or misdirected agent can do real damage.

How Kynara fits

from kynara_sdk import permission_required

# Guard the tools your crew's agents use
@permission_required("email.send", resource_arg="recipient")
def send_email(recipient: str, subject: str, body: str):
    return mailer.send(recipient, subject, body)

# Kynara enforces non-escalation across agent -> user delegation,
# so a crew member can never exceed the user who dispatched it.

Denied calls are blocked before they run; high-risk actions can require human approval. Every decision is recorded in a tamper-evident audit log.

What you get

Allow / deny / require approval

Every consequential call is evaluated against RBAC + ABAC policies and runtime context before it executes.

Non-escalation guarantee

An agent can never exceed the permissions of the user it acts on behalf of.

Human-in-the-loop

Route destructive or external-facing actions to a human for approval, with full context.

Tamper-evident audit

Every decision is appended to a SHA-256 hash-chained log for forensics and compliance.

Go deeper: read the guide · docs · compare Kynara.

Stay in the loop

New guides on AI agent governance, MCP security, and compliance — no spam.

Govern your crewai agents

Free plan: 3 seats, 10k decisions/month.