One-line: wrap yourDocumentation Index
Fetch the complete documentation index at: https://docs.agentguardian.io/llms.txt
Use this file to discover all available pages before exploring further.
Crew with CrewAIAdapter (or let the CLI do it via --framework crewai) and run a scan against the multi-agent kickoff loop.
When to use this
- You have a CrewAI
Crewdefined in your codebase and want a pre-production red-team pass before it ships. - You want the swarm to treat the whole crew as one black-box target — the adapter sends each adversarial prompt through
Crew.kickoff_async(inputs={"input": prompt})and stringifies the result. - You do not need per-task instrumentation. The adapter wraps the crew at the kickoff boundary; finer hook firing inside CrewAI is best-effort today (see How it works below).
What the adapter accepts
CrewAIAdapter duck-types — CrewAI itself is not a dependency of agent-guardian. It accepts any object that exposes either:
kickoff_async(inputs: dict)(preferred, async), orkickoff(inputs: dict)(sync; the adapter offloads to a thread viaasyncio.to_thread).
CrewOutput dataclass — the adapter reads .raw if present, otherwise falls back to str(result).
Source: src/agent_guardian/adapters/framework/crewai.py.
Run it — CLI
The CLI’s--framework crewai flag pairs with --framework-ref MODULE:ATTR, which the CLI imports and hands to CrewAIAdapter.
my_app.crew:research_crew must resolve to a module-level Crew instance in your project (the CLI imports my_app.crew and reads the research_crew attribute). The colon form (MODULE:ATTR) and dotted form (MODULE.ATTR) are both accepted.
Run it — Python
TargetFingerprint declares mode="framework", framework="crewai", has_tools=True, is_multi_agent=True. The orchestrator uses these flags to route the right probe families (tool-abuse and multi-agent coordination probes get unlocked).
Expected output
A scan against a CrewAICrew produces the standard AgentGuardian report. The framework adapter is reported under target.framework:
--output sarif) is consumable by GitHub Code Scanning — see CI/CD → GitHub Actions.
How to interpret the result
target.framework: "crewai"confirms the adapter was wired correctly. If you see"code"or"custom"here, the CLI fell back — re-check--framework-ref.is_multi_agent: truemeans probes like memory poisoning across agents and inter-agent collusion are eligible to run.- A finding under
probe: "prompt_injection.*"against a CrewAI target usually means a single crew member capitulated; traceevidence.transcriptto identify whichAgent.roleproduced the leak. aivss_scoreis the headline severity (0–10). Use--fail-under Nin CI to fail the build above your threshold.
How it works
Caveats:- Hook firing from inside CrewAI is best-effort. The adapter sees the kickoff boundary, not the per-agent step boundary. Per-step instrumentation is on the roadmap.
- The scan input is always shaped as
{"input": prompt}. If your tasks expect differentinputskeys, write a thin wrapper crew whoseTask.descriptionuses{input}and routes from there.
Next step
- Add the scan to CI: GitHub Actions
- Compare with other frameworks: LangGraph, OpenAI Agents SDK
- Read the attack catalog: Attack library overview