Quick Start
How It Works
What’s actually async
| Adapter | Async path | Notes |
|---|---|---|
praisonai (praisonaiagents) | Native — AgentTeam.astart() | True cooperative async |
crewai | Thread offload (default fallback) | Until CrewAI exposes async |
autogen / ag2 | Thread offload (default fallback) | Adapter-specific implementation |
Workflow mode
YAML files withprocess: workflow also run natively async via YAMLWorkflowParser + workflow.astart() — no extra configuration needed.
Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
agent_file | str | Required | Path to the agent YAML file |
framework | str | None | Framework to use (auto-detected if None) |
tools | list | None | Additional tools to make available |
agent_yaml | str | None | Direct YAML content as string |
cli_config | dict | None | CLI configuration overrides |
Common Patterns
FastAPI Background Task
Concurrent Crew Execution
Best Practices
Cancellation and timeouts propagate
Cancellation and timeouts propagate
Under native async,
asyncio.CancelledError and asyncio.wait_for now actually cancel SDK work instead of being trapped behind a worker thread:Use asyncio.gather for concurrent crews
Use asyncio.gather for concurrent crews
When running multiple crews, use
asyncio.gather for parallel execution:Framework detection works transparently
Framework detection works transparently
All supported frameworks work with async execution — praisonai-native uses true async, others fall back to thread offload automatically:
Handle errors gracefully in async contexts
Handle errors gracefully in async contexts
Wrap async crew execution in try-catch blocks:
Related
YAML Template Variables
Use placeholders safely alongside JSON literals
Framework Adapter Plugins
Custom framework adapters with async support

