praisonai
MCP serverAI & modelspraisonai lets your AI build and run workflows where multiple agents work together on a task. Agents can use self-reflection to review and improve their own work before finishing. It is a community-maintained framework with its code available on GitHub.
Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.
Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.
What your AI can do with it
- Build multi-agent AI workflows
- Run multi-agent AI workflows
- Let agents reflect on and improve their own output
- Coordinate several agents on one task
Getting started
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- Check this page for availability before trying to install it through Ahel.
From the project's README
As published by mervinpraison/praisonai in README.md.
PraisonAI π¦
PraisonAI π¦ β Hire a 24/7 AI Workforce. Stop writing boilerplate and start shipping autonomous, self-improving agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.
curl -fsSL https://praison.ai/install.sh | bash
βββββββ βββββββ ββββββ βββββββββββ βββββββ ββββ βββ ββββββ βββ
βββββββββββββββββββββββββββββββββββββββββββββββββ βββ βββββββββββ
ββββββββββββββββββββββββββββββββββββββ βββββββββ βββ βββββββββββ
βββββββ ββββββββββββββββββββββββββββββ βββββββββββββ βββββββββββ
βββ βββ ββββββ ββββββββββββββββββββββββββ ββββββ βββ ββββββ
βββ βββ ββββββ ββββββββββββββ βββββββ βββ βββββ βββ ββββββ
pip install praisonai
π― Use Cases
AI agents solving real-world problems across industries:
| Use Case | Description |
|---|---|
| π Research & Analysis | Conduct deep research, gather information, and generate insights from multiple sources automatically |
| π» Code Generation | Write, debug, and refactor code with AI agents that understand your codebase and requirements |
| βοΈ Content Creation | Generate blog posts, documentation, marketing copy, and technical writing with multi-agent teams |
| π Data Pipelines | Extract, transform, and analyze data from APIs, databases, and web sources automatically |
| π€ Customer Support | Deploy 24/7 support bots on Telegram, Discord, Slack with memory and knowledge-backed responses |
| βοΈ Workflow Automation | Automate multi-step business processes with agents that hand off tasks, verify results, and self-correct |
π Meet your first Agent (Under 1 Minute)
- Install the lightweight core SDK:
pip install praisonaiagents
export OPENAI_API_KEY="your-api-key"
- Run your first autonomous agent:
from praisonaiagents import Agent
# Give your agent a goal, and watch it work.
agent = Agent(instructions="You are a senior data analyst.")
agent.start("Analyze the top 3 tech trends of 2026 and format as a markdown table.")
𧬠The Five-Layer Agent Stack
Most frameworks hand you one or two layers and leave the rest as homework. PraisonAI covers all five β plus the outer layer that decides where your agent actually runs.
Each layer wraps the one inside it. When an agent misbehaves, the layer tells you where to look.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ⬑ MANAGED AGENTS β Where does it actually run? β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β 5 Β· GRAPH β Who runs when, and who checks whom? β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β 4 Β· LOOP β When do we stop? β β β
β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β
β β β β 3 Β· HARNESS β Can it act, and be checked? β β β β
β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β
β β β β β 2 Β· CONTEXT β Is the right thing in the window? β β β β β
β β β β β βββββββββββββββββββββββββββββββββββββββββββββββ β β β β β
β β β β β β 1 Β· PROMPT β Did I say it clearly? β β β β β β
β β β β β βββββββββββββββββββββββββββββββββββββββββββββββ β β β β β
β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β
β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Layer | The question it answers | PraisonAI |
|---|---|---|
| 1 Β· Prompt | Did I say it clearly? | instructions=, role/goal/backstory, output=, templates= |
| 2 Β· Context | Is the right thing in the window? | memory=, knowledge=, context=, handoff ContextPolicy |
| 3 Β· Harness | Can it act, and be checked? | tools=, MCP(), guardrails=, approval=, hooks=, sandbox= |
| 4 Β· Loop | When do we stop? | execution=ExecutionConfig(...), reflection=, autonomy=, doom-loop detection |
| 5 Β· Graph | Who runs when, and who checks whom? | AgentFlow, route(), parallel(), loop(), repeat() |
| ⬑ Managed | Where does it actually run? | tools_run_on="docker" β one shared sandbox for the tools, or run_on="anthropic" for the whole agent |
Layer 1 Β· Prompt β Did I say it clearly?
Role, instructions, examples, output format.
from praisonaiagents import Agent
agent = Agent(
role="Senior Data Analyst",
goal="Turn raw numbers into decisions",
output="verbose", # markdown-formatted output
)
agent.start("Summarise Q3 revenue trends")
Layer 2 Β· Context β Is the right thing in the window?
Write, select, compress, isolate β the four context operations, one parameter each.
from praisonaiagents import Agent
agent = Agent(
instructions="You are a support engineer.",
memory={"user_id": "u-42"}, # write β persists across runs (needs a user_id)
knowledge=["docs/"], # select β retrieves only what's relevant
context="summarize", # compress β auto-compacts before the limit
)
Isolate is
handoffs=[specialist]β a sub-agent inherits the last few messages and the intersection of your tools, not your whole transcript. π Handoffs
Layer 3 Β· Harness β Can it act, and be checked?
Agent = Model + Harness. Tool dispatch, plus the guides that steer before acting and the sensors that observe after.
from praisonaiagents import Agent, MCP, tool
@tool
def deploy(env: str) -> str:
"""Deploy the current build to an environment."""
return f"Deployed to {env}"
agent = Agent(
name="ReleaseEngineer",
instructions="You are a release engineer.",
tools=[deploy, MCP("npx -y @modelcontextprotocol/server-filesystem /tmp")],
approval=True, # guide β human gate before risky tools run
)
agent.start("Deploy to staging, then list the files you can read")
Layer 4 Β· Loop β When do we stop?
Hard iteration caps, budget ceilings, no-progress detection and completion checks β every brake is explicit.
from praisonaiagents import Agent, ExecutionConfig
agent = Agent(
instructions="Fix the failing tests.",
execution=ExecutionConfig(max_iter=30, max_budget=0.50, on_budget_exceeded="stop"),
autonomy=True, # required to drive the loop with run_autonomous()
)
result = agent.run_autonomous("Refactor the auth module", max_iterations=5)
print(result.completion_reason)
# goal | no_tool_calls | max_iterations | timeout | doom_loop | needs_help | error
# (with on_budget_exceeded="stop", hitting the cap raises BudgetExceededError,
# surfaced here as completion_reason="error")
Doom-loop detection is on by default. Repeated identical tool calls and AβBβAβB oscillation get caught β while a poller whose output keeps changing does not. π Doom Loop Detection
Layer 5 Β· Graph β Who runs when, and who checks whom?
Topology as a versionable artifact: prompt chaining, routing, parallelisation, orchestrator-worker.
from praisonaiagents import AgentFlow
from praisonaiagents.workflows import route, parallel, repeat
flow = AgentFlow(steps=[
classifier,
route({"bug": [bug_agent], "feature": [feature_agent], "default": [triage]}),
parallel([reviewer, tester]), # fan out, join automatically
repeat(editor, until=lambda ctx: "approved" in ctx.previous_result.lower(),
max_iterations=3), # evaluatorβoptimizer
])
flow.run("Ticket #123: login fails on Safari")
The same graph is expressible in YAML with no Python at all. π AgentFlow
⬑ Outside the stack: Managed Agents β Where does it actually run?
The harness is commoditising; where the agent executes is the next multiplier. Rather than burning your laptop's CPU, hand an agent a short-lived cloud sandbox β repo, tools and tests run there.
pip install praisonai
The simplest way in is tools_run_on= β one whole team or workflow shares one sandbox, so a file written by step 1 is there for step 2. Thinking stays on your machine:
from praisonaiagents import Agent, AgentFlow
writer = Agent(name="Writer", instructions="You write files.")
reader = Agent(name="Reader", instructions="You read files.")
flow = AgentFlow(tools_run_on="docker", steps=[writer, reader]) # or e2b | modal | daytona | flyio
flow.run("Write 'hello' to /workspace/note.txt, then read it back")
Same thing with no Python at all:
name: remote-demo
tools_run_on: docker # every step shares one sandbox
agents:
writer: {role: Writer, goal: Write files}
reader: {role: Reader, goal: Read files}
steps:
- agent: writer
action: "Write 'hello' to /workspace/note.txt"
- agent: reader
action: "Read /workspace/note.txt"
For a single agent, two words cover it β and they answer different questions:
from praisonaiagents import Agent
# A. Only the TOOLS move. Thinking stays on your machine.
agent = Agent(name="builder", instructions="You build things.",
tools_run_on="docker") # docker | e2b | modal | daytona | flyio
# tenki | sandlock | ssh | novita | subprocess
# B. The WHOLE agent moves β model calls, loop and tools
agent = Agent(name="teacher", instructions="You teach.", run_on="anthropic") # hosted
agent = Agent(name="builder", instructions="You build.", run_on="docker") # self-hosted
agent.start("Write a Python script that prints the first 10 primes, then run it")
Ask any object where it runs, and it will tell you:
>>> Agent(name="builder", instructions="x", tools_run_on="docker")
Agent(name='builder', thinks_on='this machine', tools_run_on='a Docker container')
>>> agent.where_does_it_run()
Thinking (the AI model calls) happens on this machine.
Tools run on a Docker container.
Your own tools (check_db) still run on this machine -- only shell, file and
code tools move. They read and write this machine's files.
Naming a place that cannot do the job is a typo, not a preference, so it says so:
>>> Agent(name="x", instructions="i", run_on="e2b")
TypeError: Agent(run_on='e2b') is not valid: run_on= places the whole agent
-- model calls, loop and tools -- on a managed runtime, and 'e2b' runs
commands but cannot host an agent loop.
To run only the tools there: Agent(tools_run_on='e2b')
To run one block of code somewhere else, name the place on that call:
agent.execute_code_sync("print(6 * 7)", run_in="sandlock") # kernel-enforced
See what is running and reclaim strays:
praisonai managed ps # list running sandboxes
praisonai managed stop --all # reclaim them
Sandboxes shut themselves down when idle (auto_shutdown, idle_timeout_s), and a post-setup snapshot is reused so the next run skips the image pull and dependency install. Commit a .praisonai/environment.yaml and the environment travels with the repo.
π 20 runnable examples Β· manage sessions with
praisonai managed sessions list <agent-id>orpraisonai managed sessions resume <session-id> "<prompt>"
Stack framing adapted from The Five-Layer Agent Stack and Agent Harnesses vs Orbs.
π The PraisonAI Ecosystem
Start simple with the core SDK, or expand to full visual builders and dashboards when you're ready.
- Core SDK (
praisonaiagents): For pure Python development.pip install praisonaiagents - π» PraisonAI CLI (
praisonai): For terminal-based developers.pip install praisonai - π¦ Claw Dashboard: Connect agents directly to Telegram, Slack, or Discord.
pip install "praisonai[claw]" - π Flow Visual Builder: Drag-and-drop workflow creation.
pip install "praisonai[flow]" - π€ PraisonAI UI: Clean chat interface.
pip install "praisonai[ui]"
JavaScript SDK
npm install praisonai
π§ Supported Providers & Features
Powered by 100+ LLMs (OpenAI, Anthropic, Gemini & local models).
| Provider | Example |
|---|---|
| OpenAI | Example |
| Anthropic | Example |
| Google Gemini | Example |
| Ollama | Example |
| Groq | Example |
| DeepSeek | Example |
| xAI Grok | Example |
| Mistral | Example |
| Cohere | Example |
| Perplexity | Example |
| Fireworks | Example |
| Together AI | Example |
| OpenRouter | Example |
| HuggingFace | Example |
| Azure OpenAI | Example |
| AWS Bedrock | Example |
| Google Vertex | Example |
| Databricks | Example |
| Cloudflare | Example |
| AI21 | Example |
| Replicate | Example |
| SageMaker | Example |
| Moonshot | Example |
| vLLM | Example |
π Why PraisonAI?
| Feature | How | |
|---|---|---|
| π | MCP Protocol β stdio, HTTP, WebSocket, SSE | tools=MCP("npx ...") |
| π§ | Planning Mode β plan β execute β reason | planning=True |
| π | Deep Research β multi-step autonomous research | Docs |
| π€ | External Agents β orchestrate Claude Code, Gemini CLI, Codex | Docs |
| π | Agent Handoffs β seamless conversation passing | handoffs=[other_agent] |
| π‘οΈ | Guardrails β input/output validation | Docs |
| Web Search + Fetch β native browsing | web=True | |
| πͺ | Self Reflection β agent reviews its own output | Docs |
| π | Workflow Patterns β route, parallel, loop, repeat | Docs |
| π§ | Memory (zero deps) β works out of the box | memory=True |
| Feature | How | |
|---|---|---|
| π‘ | Prompt Caching β reduce latency + cost | caching=True |
| πΎ | Sessions + Auto-Save β persistent state across restarts | auto_save="my-project" |
| π | Thinking Budgets β control reasoning depth | agent.thinking_budget = 1024 |
| π | RAG + Quality-Based RAG β auto quality scoring retrieval | Docs |
| π | Model Router β auto-routes to cheapest capable model | Docs |
| π§ | Shadow Git Checkpoints β auto-rollback on failure | Docs |
| π‘ | A2A Protocol β agent-to-agent interop | Docs |
| π | Context Compaction β never hit token limits | Docs |
| π‘ | Telemetry β OpenTelemetry traces, spans, metrics | Docs |
| π | Policy Engine β declarative agent behavior control | Docs |
| π | Background Tasks β fire-and-forget agents | Docs |
| π | Doom Loop Detection β auto-recovery from stuck agents | Docs |
| πΈοΈ | Graph Memory β Neo4j-style relationship tracking | Docs |
| ποΈ | Sandbox Execution β isolated code execution | Docs |
| π₯οΈ | Bot Gateway β multi-agent routing across channels | Docs |
π Using Python Code
1. Single Agent
from praisonaiagents import Agent
agent = Agent(instructions="You are a helpful AI assistant")
agent.start("Write a movie script about a robot in Mars")
2. Multi Agents
from praisonaiagents import Agent, Agents
research_agent = Agent(instructions="Research about AI")
summarise_agent = Agent(instructions="Summarise research agent's findings")
agents = Agents(agents=[research_agent, summarise_agent])
agents.start()
3. MCP (Model Context Protocol)
from praisonaiagents import Agent, MCP
# stdio - Local NPX/Python servers
agent = Agent(tools=MCP("npx @modelcontextprotocol/server-memory"))
# Streamable HTTP - Production servers
agent = Agent(tools=MCP("https://api.example.com/mcp"))
# WebSocket - Real-time bidirectional
agent = Agent(tools=MCP("wss://api.example.com/mcp", auth_token="token"))
# With environment variables
agent = Agent(
tools=MCP(
command="npx",
args=["-y", "@modelcontextprotocol/server-brave-search"],
env={"BRAVE_API_KEY": "your-key"}
)
)
π Full MCP docs β stdio, HTTP, WebSocket, SSE transports
4. Custom Tools
from praisonaiagents import Agent, tool
@tool
def search(query: str) -> str:
"""Search the web for information."""
return f"Results for: {query}"
Shortened here. Read the whole README on GitHub.
Signals
- GitHub stars
- 9k
- Forks
- 1k
- Last commit
- Oct 2026
Advanced
- Delivery
- praisonai MCP server β your Ahel connector (mcp.ahel.ai) β your AI.
- Item type
- mcp-server
- Key
io-github-mervinpraison-praisonai- Source
- github.com/mervinpraison/praisonai
github.com/mervinpraison/praisonai
More in AI & models
MCP server Β· upstash
More in AI & modelsAdButler
MCP server Β· adbutler
More in AI & modelsatom-mcp-server
MCP server Β· a7om-ai
More in AI & modelsottasia
MCP server Β· aiweather-anurag
More in AI & modelsunphurl
MCP server Β· 123ergo
More in AI & modelsmicrosoft-learn-mcp
MCP server Β· microsoftdocs
More in AI & models