Skip to content

agentic-crew

Python

Define AI crews in YAML. Run them on CrewAI, LangGraph, or Strands — whichever is installed. One format, any framework.

PyPI version License: MIT

The AI agent ecosystem is fragmented. CrewAI, LangGraph, and Strands each have different APIs for the same concepts — agents, tasks, and orchestration. Switching frameworks means rewriting your crew definitions. And single-agent CLI tools (aider, claude-code, ollama) each have their own invocation patterns.

agentic-crew gives you:

  1. Universal crew format — YAML definitions that work across all three frameworks
  2. Runtime auto-detection — Automatically uses whichever framework is installed
  3. Universal CLI runner — One interface for aider, claude-code, ollama, codex, kiro, and goose
  4. Custom runner support — Define your own CLI tools in YAML
Terminal window
# Core (auto-detects framework at runtime)
pip install agentic-crew
# With a specific framework
pip install agentic-crew[crewai] # CrewAI (recommended)
pip install agentic-crew[langgraph] # LangGraph
pip install agentic-crew[strands] # AWS Strands
# All frameworks
pip install agentic-crew[ai]
.crewai/manifest.yaml
name: my-package
version: "1.0"
crews:
analyzer:
description: Analyze codebases
agents: crews/analyzer/agents.yaml
tasks: crews/analyzer/tasks.yaml
crews/analyzer/agents.yaml
code_reviewer:
role: Senior Code Reviewer
goal: Find bugs and improvements
backstory: Expert at code analysis
crews/analyzer/tasks.yaml
review_code:
description: Review the provided code for issues
expected_output: List of findings with severity
agent: code_reviewer
from agentic_crew import run_crew
# Auto-detects best framework (CrewAI > LangGraph > Strands)
result = run_crew("my-package", "analyzer", inputs={"code": "..."})
Terminal window
# Or from the CLI
agentic-crew run my-package analyzer --input "Review this code"

For simpler tasks, run CLI-based coding tools through a unified interface:

RunnerDescriptionLocal?
aiderAI pair programmingNo
claude-codeAnthropic’s coding agentNo
codexOpenAI’s coding agentNo
ollamaFree local LLM executionYes
kiroAWS AI development CLINo
gooseBlock’s extensible agentNo
Terminal window
# Aider for quick fixes
agentic-crew run --runner aider --input "Add error handling to auth.py"
# Claude Code for refactoring
agentic-crew run --runner claude-code --input "Refactor the database module"
# Ollama for free local execution
agentic-crew run --runner ollama --input "Fix the bug" --model deepseek-coder
ScenarioUse
Complex multi-step tasks needing collaborationMulti-agent crew
Quick edits, simple file changesSingle-agent CLI runner
Local development without API keysOllama runner
Tasks requiring planning and delegationMulti-agent crew

agentic-crew checks what’s installed and picks the best option:

from agentic_crew.core.decomposer import detect_framework, get_runner
framework = detect_framework() # "crewai", "langgraph", or "strands"
runner = get_runner() # Auto-selects best available
runner = get_runner("langgraph") # Force a specific framework

Priority order:

  1. CrewAI — Most features, best for complex crews
  2. LangGraph — Good for flow-based orchestration
  3. Strands — Lightweight, minimal dependencies
from agentic_crew import CrewConfig, AgentConfig, TaskConfig, run_crew_auto
config = CrewConfig(
name="review-crew",
agents=[
AgentConfig(
name="security_reviewer",
role="Security Expert",
goal="Identify security vulnerabilities",
backstory="10+ years of security auditing",
),
AgentConfig(
name="performance_reviewer",
role="Performance Engineer",
goal="Identify performance bottlenecks",
backstory="Expert in optimization and profiling",
),
],
tasks=[
TaskConfig(
name="security_review",
description="Review code for security issues",
agent="security_reviewer",
expected_output="Vulnerabilities with severity ratings",
),
TaskConfig(
name="performance_review",
description="Analyze code for performance issues",
agent="performance_reviewer",
expected_output="Bottlenecks with recommendations",
),
],
)
result = run_crew_auto(config, inputs={"code_path": "./src"})

Any package can include crew definitions:

my-package/
├── .crewai/
│ ├── manifest.yaml
│ ├── knowledge/
│ │ └── domain_docs/
│ └── crews/
│ └── my_crew/
│ ├── agents.yaml
│ └── tasks.yaml
└── src/
Terminal window
# Install with dev deps
uv sync --extra dev --extra tests --extra crewai
# Run tests
uv run pytest tests/ -v
# Lint
uvx ruff check src/ tests/ --fix