AgentTeam.start() or a workflow run.
Quick Start
How It Works
praisonai doctor runtime --team parses your team YAML and checks:
- Known runtime IDs and installed packages
- Required capabilities (handoffs, tools,
cli_backend, etc.) - Handoff target existence and compatibility
- Mixed-runtime warnings across the team
- Agent-level
runtime:wins. - Otherwise falls back to top-level
framework:(defaultpraisonai). - When
framework: autogen, version comes fromautogen_version:or$AUTOGEN_VERSION:v0.4→autogen_v4(if available)v0.2→autogenauto(default) → prefersautogen_v4if installed, elseautogen
Runtime Capability Matrix
| Runtime ID | Display Name | Handoff support | Tool loop |
|---|---|---|---|
praisonai | PraisonAI Agents | Yes | Yes |
crewai | CrewAI | No | Yes |
autogen | AutoGen v0.2 | No | Yes |
autogen_v4 | AutoGen v0.4 | Yes | Yes |
ag2 | AG2 (AutoGen Next) | No | Yes |
agent_creation, tool_execution, handoff_support, context_sharing, cli_backend, sequential_execution, hierarchical_execution, group_chat.
Configuration
CLI flags
| Flag | Type | Description |
|---|---|---|
--team | string | Team YAML file to validate |
--workflow | string | Workflow YAML file to validate (placeholder — returns SKIP) |
--json | flag | Emit JSON for CI integration |
--deep | flag | Enable deeper probes (accepted; runtime checks do not branch on it today) |
Exit codes
| Code | Meaning |
|---|---|
0 | No issues found |
1 | Issues detected (or team file missing) — non-zero blocks CI |
2 | Internal error |
What the Checker Detects
| Check ID prefix | What it catches | Severity |
|---|---|---|
runtime.yaml_parse | YAML file fails to parse | CRITICAL |
runtime.unknown_runtime.{role} | Agent’s runtime: value isn’t a known runtime ID | HIGH |
runtime.unavailable.{role} | Runtime package not installed in current env | HIGH |
runtime.missing_capabilities.{role} | Agent needs a capability the runtime doesn’t provide | HIGH |
runtime.handoff_unsupported.{role} | Agent has handoff: but runtime doesn’t support handoffs | HIGH |
runtime.handoff_target_missing.{role} | Handoff target role name doesn’t exist in the YAML | HIGH |
runtime.handoff_target_incompatible.{role} | Handoff target uses a runtime that may not support tool loops | MEDIUM |
runtime.mixed_runtimes | Multiple runtimes in one team — informational warning | MEDIUM |
runtime.mixed_handoff_incompatible | Mixed runtime team has handoffs routed through incompatible runtimes | HIGH |
Common Patterns
Good team YAML (passes)
Bad team YAML (multiple failures)
CI integration
Programmatic API
The same
praisonai doctor runtime command also handles legacy cli_backend migration (--fix, --execute). See Runtime Config Migration for migration flags.Best Practices
Run preflight before every team deploy
Run preflight before every team deploy
Add
praisonai doctor runtime --team agents.yaml to CI and local scripts before AgentTeam.start() or praisonai workflow run.Use --json in CI pipelines
Use --json in CI pipelines
JSON output integrates cleanly with GitHub Actions and other CI systems — exit code
1 blocks the pipeline when compatibility issues are found.Prefer a single runtime for handoff teams
Prefer a single runtime for handoff teams
Only
praisonai and autogen_v4 support handoffs. Mixed-runtime teams with handoffs through crewai, autogen, or ag2 fail preflight.Related
Doctor CLI
Full reference for praisonai doctor subcommands and check categories
AgentTeam
Multi-agent orchestration with AgentTeam and Task
PraisonAI Agents Framework
Framework options including handoffs and runtime selection
Runtime Config Migration
Migrate legacy cli_backend fields with praisonai doctor runtime —fix

