Agent Framework
Run desktop chat turns through CrewAI, AutoGen, LangGraph and other adapters
Pick which framework runs a chat turn — PraisonAI is built in, and installing praisonai-frameworks adds CrewAI, AutoGen, LangGraph, Agno, Google ADK, OpenAI Agents SDK and Pydantic AI.
from praisonaiagents import Agent
agent = Agent(
name="Assistant",
instructions="You are a helpful assistant.",
)
# The desktop app is a thin shell around this agent. Selecting a non-default
# framework in Settings routes the same turn through that framework instead.
agent.start("Summarize this file")The default framework = "praisonai" runs the built-in agent. Any other name routes the turn through that framework’s adapter, discovered by the praisonai-frameworks extras package.
Quick Start
- Keep the default
Do nothing.
frameworkdefaults to"praisonai", so every turn runs the built-in agent with no extra install. - Install the extras
Add the framework you want as an extra of
praisonai-frameworks:bash pip install "praisonai-frameworks[crewai]"The other extras are
autogen,langgraph,agno,google-adk,openai-agents, andpydantic-ai. - Set the setting
Open Settings → Models → Agent framework, type the framework name (for example
crewai), and restart the app. The field is marked Requires restart, so the engine picks it up on the next launch.
How It Works
A non-default framework routes through praisonai.agents_generator.AgentsGenerator with a generated one-agent YAML — the chat turn is expressed as a single agent, single task config. Because that path returns the finished result rather than a token stream, streaming is not available for these frameworks: the reply arrives whole. The exact contract lives in run_with_framework and _framework_yaml in the engine’s server.py.
Availability & Install Hints
GET /frameworks reports this same list at runtime — available names what this install can run, and hints gives the install command for the rest.
| Framework | Install hint |
|---|---|
praisonai | (built in — always available) |
crewai | pip install "praisonai-frameworks[crewai]" |
autogen | pip install "praisonai-frameworks[autogen]" |
langgraph | pip install "praisonai-frameworks[langgraph]" |
agno | pip install "praisonai-frameworks[agno]" |
google-adk | pip install "praisonai-frameworks[google-adk]" |
openai-agents | pip install "praisonai-frameworks[openai-agents]" |
pydantic-ai | pip install "praisonai-frameworks[pydantic-ai]" |
Refusal Behaviour
Best Practices
Install one framework at a time
The extras are heavy — each pulls its own dependency tree. Install only the framework you intend to use rather than every extra at once.
Restart after changing the framework
The framework field is requiresRestart: true. Relaunch the app after changing it so the engine loads the selected adapter.
Streaming behaviour changes for non-default frameworks
The reply arrives whole for any framework other than praisonai. The streaming toggle has no effect on those turns — expect the answer to appear at once rather than token by token.