[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72017":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":47,"readmeContent":48,"aiSummary":49,"trendingCount":16,"starSnapshotCount":16,"syncStatus":50,"lastSyncTime":51,"discoverSource":52},72017,"PraisonAI","MervinPraison\u002FPraisonAI","MervinPraison","PraisonAI 🦞 — Hire a 24\u002F7 AI Workforce. Stop writing boilerplate and start shipping autonomous self-improving agents that research, plan, code, and execute tasks. Deployed in 5 lines of code with built-in memory, RAG, and support for 100+ LLMs.","https:\u002F\u002Fdocs.praison.ai",null,"Python",8112,1241,80,108,0,26,97,199,78,40.28,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"agents","ai","ai-agent-framework","ai-agent-sdk","ai-agents","ai-agents-framework","ai-agents-sdk","ai-framwork","aiagent","aiagentframework","aiagents","aiagentsframework","claw","framework","multi-agent","multi-agent-system","multi-agent-systems","multi-agents","multi-ai-agents","openclaw","2026-06-12 02:02:57","\u003Cp align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\".github\u002Fimages\u002Flogo_dark.png\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\".github\u002Fimages\u002Flogo_light.png\" \u002F>\n    \u003Cimg alt=\"PraisonAI Logo\" src=\".github\u002Fimages\u002Flogo_light.png\" width=\"250\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fp>\n\n\u003C!-- mcp-name: io.github.MervinPraison\u002Fpraisonai -->\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMervinPraison\u002FPraisonAI\">\u003Cimg src=\"https:\u002F\u002Fstatic.pepy.tech\u002Fbadge\u002FPraisonAI\" alt=\"Total Downloads\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMervinPraison\u002FPraisonAI\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FMervinPraison\u002FPraisonAI\" alt=\"Latest Stable Version\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMervinPraison\u002FPraisonAI\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg\" alt=\"License\" \u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fregistry.modelcontextprotocol.io\u002Fservers\u002Fio.github.MervinPraison\u002Fpraisonai\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMCP-Registry-blue\" alt=\"MCP Registry\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cdiv align=\"center\">\n\n# PraisonAI 🦞\n\n\u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F9130\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F9130\" alt=\"MervinPraison%2FPraisonAI | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\nPraisonAI 🦞 — **Hire a 24\u002F7 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.\n\n```bash\ncurl -fsSL https:\u002F\u002Fpraison.ai\u002Finstall.sh | bash\n```\n\n\u003Cdiv align=\"center\">\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Felonmusk\u002Fstatus\u002F1893870468249141688\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHighlighted_by_Elon_Musk-000000?style=for-the-badge&logo=x&logoColor=white\" alt=\"Highlighted by Elon Musk\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".github\u002Fimages\u002Fdashboard.png\" alt=\"PraisonAI Dashboard\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".github\u002Fimages\u002Fagentflow.gif\" alt=\"PraisonAI AgentFlow\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n```\n ██████╗ ██████╗  █████╗ ██╗███████╗ ██████╗ ███╗   ██╗     █████╗ ██╗\n ██╔══██╗██╔══██╗██╔══██╗██║██╔════╝██╔═══██╗████╗  ██║    ██╔══██╗██║\n ██████╔╝██████╔╝███████║██║███████╗██║   ██║██╔██╗ ██║    ███████║██║\n ██╔═══╝ ██╔══██╗██╔══██║██║╚════██║██║   ██║██║╚██╗██║    ██╔══██║██║\n ██║     ██║  ██║██║  ██║██║███████║╚██████╔╝██║ ╚████║    ██║  ██║██║\n ╚═╝     ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═══╝    ╚═╝  ╚═╝╚═╝\n\n pip install praisonai\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".github\u002Fimages\u002Flatest_ai_news_and_crawl_each_url_to_find_info.gif\" alt=\"PraisonAI command execution\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n\\* `export TAVILY_API_KEY=xxxxx`\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdocs.praison.ai\">\n    \u003Cp align=\"center\">\n      \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F📚_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white\" alt=\"Documentation\" \u002F>\n    \u003C\u002Fp>\n  \u003C\u002Fa>\n\u003C\u002Fdiv>\n\n---\n\n## 🎯 Use Cases\n\nAI agents solving real-world problems across industries:\n\n| Use Case | Description |\n|----------|-------------|\n| 🔍 **Research & Analysis** | Conduct deep research, gather information, and generate insights from multiple sources automatically |\n| 💻 **Code Generation** | Write, debug, and refactor code with AI agents that understand your codebase and requirements |\n| ✍️ **Content Creation** | Generate blog posts, documentation, marketing copy, and technical writing with multi-agent teams |\n| 📊 **Data Pipelines** | Extract, transform, and analyze data from APIs, databases, and web sources automatically |\n| 🤖 **Customer Support** | Deploy 24\u002F7 support bots on Telegram, Discord, Slack with memory and knowledge-backed responses |\n| ⚙️ **Workflow Automation** | Automate multi-step business processes with agents that hand off tasks, verify results, and self-correct |\n\n---\n\n## 🚀 Meet your first Agent (Under 1 Minute)\n\n1. Install the lightweight core SDK:\n```bash\npip install praisonaiagents\nexport OPENAI_API_KEY=\"your-api-key\"\n```\n\n2. Run your first autonomous agent:\n```python\nfrom praisonaiagents import Agent\n\n# Give your agent a goal, and watch it work.\nagent = Agent(instructions=\"You are a senior data analyst.\")\nagent.start(\"Analyze the top 3 tech trends of 2026 and format as a markdown table.\")\n```\n\n---\n\n## 🌌 The PraisonAI Ecosystem\n\nStart simple with the core SDK, or expand to full visual builders and dashboards when you're ready.\n\n*   **Core SDK (`praisonaiagents`)**: For pure Python development. `pip install praisonaiagents`\n*   💻 **PraisonAI CLI (`praisonai`)**: For terminal-based developers. `pip install praisonai`\n*   🦞 **Claw Dashboard**: Connect agents directly to Telegram, Slack, or Discord. `pip install \"praisonai[claw]\"`\n*   🔗 **Flow Visual Builder**: Drag-and-drop workflow creation. `pip install \"praisonai[flow]\"`\n*   🤖 **PraisonAI UI**: Clean chat interface. `pip install \"praisonai[ui]\"`\n\n### JavaScript SDK\n\n```bash\nnpm install praisonai\n```\n\n## 🧠 Supported Providers & Features\n\nPowered by 100+ LLMs (OpenAI, Anthropic, Gemini & local models).\n\n\u003Cp align=\"center\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpenAI-412991?style=flat&logo=openai&logoColor=white\" alt=\"OpenAI\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAnthropic-191919?style=flat&logo=anthropic&logoColor=white\" alt=\"Anthropic\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGoogle_Gemini-4285F4?style=flat&logo=google&logoColor=white\" alt=\"Google Gemini\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDeepSeek-566AB2?style=flat\" alt=\"DeepSeek\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAzure-0078D4?style=flat&logo=microsoftazure&logoColor=white\" alt=\"Azure\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOllama-000000?style=flat\" alt=\"Ollama\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGroq-F05237?style=flat\" alt=\"Groq\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMistral-FF7000?style=flat\" alt=\"Mistral\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCerebras-F05A28?style=flat\" alt=\"Cerebras\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCohere-39594D?style=flat\" alt=\"Cohere\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpenRouter-6467F2?style=flat\" alt=\"OpenRouter\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPerplexity-20808D?style=flat\" alt=\"Perplexity\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFireworks-FF6B35?style=flat\" alt=\"Fireworks\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAWS_Bedrock-FF9900?style=flat&logo=amazonaws&logoColor=white\" alt=\"AWS Bedrock\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FxAI_Grok-000000?style=flat\" alt=\"xAI Grok\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FVertex_AI-4285F4?style=flat&logo=googlecloud&logoColor=white\" alt=\"Vertex AI\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHuggingFace-FFD21E?style=flat&logo=huggingface&logoColor=black\" alt=\"HuggingFace\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTogether_AI-000000?style=flat\" alt=\"Together AI\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDatabricks-FF3621?style=flat&logo=databricks&logoColor=white\" alt=\"Databricks\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReplicate-262626?style=flat\" alt=\"Replicate\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCloudflare-F38020?style=flat&logo=cloudflare&logoColor=white\" alt=\"Cloudflare\" \u002F>\n\u003C\u002Fp>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>View all 24 providers with examples\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Provider | Example |\n|----------|:-------:|\n| OpenAI | [Example](examples\u002Fpython\u002Fproviders\u002Fopenai\u002Fopenai_gpt4_example.py) |\n| Anthropic | [Example](examples\u002Fpython\u002Fproviders\u002Fanthropic\u002Fanthropic_claude_example.py) |\n| Google Gemini | [Example](examples\u002Fpython\u002Fproviders\u002Fgoogle\u002Fgoogle_gemini_example.py) |\n| Ollama | [Example](examples\u002Fpython\u002Fproviders\u002Follama\u002Follama-agents.py) |\n| Groq | [Example](examples\u002Fpython\u002Fproviders\u002Fgroq\u002Fkimi_with_groq_example.py) |\n| DeepSeek | [Example](examples\u002Fpython\u002Fproviders\u002Fdeepseek\u002Fdeepseek_example.py) |\n| xAI Grok | [Example](examples\u002Fpython\u002Fproviders\u002Fxai\u002Fxai_grok_example.py) |\n| Mistral | [Example](examples\u002Fpython\u002Fproviders\u002Fmistral\u002Fmistral_example.py) |\n| Cohere | [Example](examples\u002Fpython\u002Fproviders\u002Fcohere\u002Fcohere_example.py) |\n| Perplexity | [Example](examples\u002Fpython\u002Fproviders\u002Fperplexity\u002Fperplexity_example.py) |\n| Fireworks | [Example](examples\u002Fpython\u002Fproviders\u002Ffireworks\u002Ffireworks_example.py) |\n| Together AI | [Example](examples\u002Fpython\u002Fproviders\u002Ftogether\u002Ftogether_ai_example.py) |\n| OpenRouter | [Example](examples\u002Fpython\u002Fproviders\u002Fopenrouter\u002Fopenrouter_example.py) |\n| HuggingFace | [Example](examples\u002Fpython\u002Fproviders\u002Fhuggingface\u002Fhuggingface_example.py) |\n| Azure OpenAI | [Example](examples\u002Fpython\u002Fproviders\u002Fazure\u002Fazure_openai_example.py) |\n| AWS Bedrock | [Example](examples\u002Fpython\u002Fproviders\u002Faws\u002Faws_bedrock_example.py) |\n| Google Vertex | [Example](examples\u002Fpython\u002Fproviders\u002Fvertex\u002Fvertex_example.py) |\n| Databricks | [Example](examples\u002Fpython\u002Fproviders\u002Fdatabricks\u002Fdatabricks_example.py) |\n| Cloudflare | [Example](examples\u002Fpython\u002Fproviders\u002Fcloudflare\u002Fcloudflare_example.py) |\n| AI21 | [Example](examples\u002Fpython\u002Fproviders\u002Fai21\u002Fai21_example.py) |\n| Replicate | [Example](examples\u002Fpython\u002Fproviders\u002Freplicate\u002Freplicate_example.py) |\n| SageMaker | [Example](examples\u002Fpython\u002Fproviders\u002Fsagemaker\u002Fsagemaker_example.py) |\n| Moonshot | [Example](examples\u002Fpython\u002Fproviders\u002Fmoonshot\u002Fmoonshot_example.py) |\n| vLLM | [Example](examples\u002Fpython\u002Fproviders\u002Fvllm\u002Fvllm_example.py) |\n\n\u003C\u002Fdetails>\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Felonmusk\u002Fstatus\u002F1893870468249141688\" target=\"_blank\">\n    \u003Cimg src=\".github\u002Fimages\u002Felon_musk_praisonai.png\" alt=\"Highlighted by Elon Musk\" width=\"600\" \u002F>\n  \u003C\u002Fa>\n  \u003Cp>\u003Cem>\"Grok 3 customer support\" — \u003Ca href=\"https:\u002F\u002Fx.com\u002Felonmusk\u002Fstatus\u002F1893870468249141688\">Elon Musk quoting PraisonAI's tutorial\u003C\u002Fa>\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cbr>\n\n---\n\n## 🌟 Why PraisonAI?\n\n| | Feature | How |\n|--|---------|-----|\n| 🔌 | **MCP Protocol** — stdio, HTTP, WebSocket, SSE | `tools=MCP(\"npx ...\")` |\n| 🧠 | **Planning Mode** — plan → execute → reason | `planning=True` |\n| 🔍 | **Deep Research** — multi-step autonomous research | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fdeep-research) |\n| 🤖 | **External Agents** — orchestrate Claude Code, Gemini CLI, Codex | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcode\u002Fexternal-agents) |\n| 🔄 | **Agent Handoffs** — seamless conversation passing | `handoff=True` |\n| 🛡️ | **Guardrails** — input\u002Foutput validation | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fguardrails) |\n|  | **Web Search + Fetch** — native browsing | `web_search=True` |\n| 🪞 | **Self Reflection** — agent reviews its own output | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Freflection) |\n| 🔀 | **Workflow Patterns** — route, parallel, loop, repeat | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagentflow) |\n| 🧠 | **Memory (zero deps)** — works out of the box | `memory=True` |\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>View all 25 features\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| | Feature | How |\n|--|---------|-----|\n| 💡 | **Prompt Caching** — reduce latency + cost | `prompt_caching=True` |\n| 💾 | **Sessions + Auto-Save** — persistent state across restarts | `auto_save=\"my-project\"` |\n| 💭 | **Thinking Budgets** — control reasoning depth | `thinking_budget=1024` |\n| 📚 | **RAG + Quality-Based RAG** — auto quality scoring retrieval | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Frag) |\n| 📊 | **Model Router** — auto-routes to cheapest capable model | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fmodel-router) |\n| 🧊 | **Shadow Git Checkpoints** — auto-rollback on failure | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fcheckpoints) |\n| 📡 | **A2A Protocol** — agent-to-agent interop | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fa2a) |\n| 📏 | **Context Compaction** — never hit token limits | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fcontext-compaction) |\n| 📡 | **Telemetry** — OpenTelemetry traces, spans, metrics | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Ftelemetry) |\n| 📜 | **Policy Engine** — declarative agent behavior control | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fpolicy-engine) |\n| 🔄 | **Background Tasks** — fire-and-forget agents | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fbackground-tasks) |\n| 🔁 | **Doom Loop Detection** — auto-recovery from stuck agents | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fdoom-loop-detection) |\n| 🕸️ | **Graph Memory** — Neo4j-style relationship tracking | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fgraph-memory) |\n| 🏖️ | **Sandbox Execution** — isolated code execution | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fsandbox) |\n| 🖥️ | **Bot Gateway** — multi-agent routing across channels | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fbot-gateway) |\n\n\u003C\u002Fdetails>\n\n\n\n\n---\n\n## 📘 Using Python Code\n\n### 1. Single Agent\n\n```python\nfrom praisonaiagents import Agent\nagent = Agent(instructions=\"You are a helpful AI assistant\")\nagent.start(\"Write a movie script about a robot in Mars\")\n```\n\n### 2. Multi Agents\n\n```python\nfrom praisonaiagents import Agent, Agents\n\nresearch_agent = Agent(instructions=\"Research about AI\")\nsummarise_agent = Agent(instructions=\"Summarise research agent's findings\")\nagents = Agents(agents=[research_agent, summarise_agent])\nagents.start()\n```\n\n### 3. MCP (Model Context Protocol)\n\n```python\nfrom praisonaiagents import Agent, MCP\n\n# stdio - Local NPX\u002FPython servers\nagent = Agent(tools=MCP(\"npx @modelcontextprotocol\u002Fserver-memory\"))\n\n# Streamable HTTP - Production servers\nagent = Agent(tools=MCP(\"https:\u002F\u002Fapi.example.com\u002Fmcp\"))\n\n# WebSocket - Real-time bidirectional\nagent = Agent(tools=MCP(\"wss:\u002F\u002Fapi.example.com\u002Fmcp\", auth_token=\"token\"))\n\n# With environment variables\nagent = Agent(\n    tools=MCP(\n        command=\"npx\",\n        args=[\"-y\", \"@modelcontextprotocol\u002Fserver-brave-search\"],\n        env={\"BRAVE_API_KEY\": \"your-key\"}\n    )\n)\n```\n\n> 📖 [Full MCP docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmcp\u002Ftransports) — stdio, HTTP, WebSocket, SSE transports\n\n### 4. Custom Tools\n\n```python\nfrom praisonaiagents import Agent, tool\n\n@tool\ndef search(query: str) -> str:\n    \"\"\"Search the web for information.\"\"\"\n    return f\"Results for: {query}\"\n\n@tool\ndef calculate(expression: str) -> float:\n    \"\"\"Safely evaluate a numeric arithmetic expression.\"\"\"\n    import ast\n    import operator\n    \n    # Define allowed operations\n    _OPS = {\n        ast.Add: operator.add,\n        ast.Sub: operator.sub,\n        ast.Mult: operator.mul,\n        ast.Div: operator.truediv,\n        ast.Pow: operator.pow,\n        ast.USub: operator.neg,\n        ast.UAdd: operator.pos,\n    }\n    \n    def _safe_eval(node):\n        if isinstance(node, ast.Constant) and isinstance(node.value, (int, float)):\n            return node.value\n        elif isinstance(node, ast.BinOp) and type(node.op) in _OPS:\n            return _OPS[type(node.op)](_safe_eval(node.left), _safe_eval(node.right))\n        elif isinstance(node, ast.UnaryOp) and type(node.op) in _OPS:\n            return _OPS[type(node.op)](_safe_eval(node.operand))\n        else:\n            raise ValueError(\"Unsupported expression\")\n    \n    try:\n        return _safe_eval(ast.parse(expression, mode=\"eval\").body)\n    except (ValueError, SyntaxError, TypeError, ZeroDivisionError, OverflowError):\n        raise ValueError(\"Invalid arithmetic expression\")\n\nagent = Agent(\n    instructions=\"You are a helpful assistant\",\n    tools=[search, calculate]\n)\nagent.start(\"Search for AI news and calculate 15*4\")\n```\n\n> ⚠️ **Security Note:** Never use `eval()`, `exec()`, or `subprocess` in tool functions that process LLM-generated or user-supplied input. Always validate and sanitize inputs to prevent code injection attacks.\n> 📖 [Full tools docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ftools\u002Ftools) — BaseTool, tool packages, 100+ built-in tools\n\n### 5. Persistence (Databases)\n\n```python\nfrom praisonaiagents import Agent, db\n\nagent = Agent(\n    name=\"Assistant\",\n    db=db(database_url=\"postgresql:\u002F\u002Flocalhost\u002Fmydb\"),\n    session_id=\"my-session\"\n)\nagent.chat(\"Hello!\")  # Auto-persists messages, runs, traces\n```\n\n> 📖 [Full persistence docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fdatabases\u002Foverview) — PostgreSQL, MySQL, SQLite, MongoDB, Redis, and 20+ more\n\n### 6. PraisonAI Claw 🦞 (Dashboard UI)\n\nConnect your AI agents to **Telegram, Discord, Slack, WhatsApp** and more — all from a single command.\n\n```bash\npip install \"praisonai[claw]\"\npraisonai claw\n```\n\n#### Required Environment Variables\n\nCopy `.env.example` to `.env` and configure the following variables:\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `OPENAI_API_KEY` | Yes | OpenAI API key for all LLM calls |\n| `TAVILY_API_KEY` | Yes (Claw) | Tavily key for the built-in web-search tool. Get one free at https:\u002F\u002Fapp.tavily.com |\n\nOpen **http:\u002F\u002Flocalhost:8082** — the dashboard comes with 13 built-in pages: Chat, Agents, Memory, Knowledge, Channels, Guardrails, Cron, and more. Add messaging channels directly from the UI.\n\n> 📖 [Full Claw docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fclaw) — platform tokens, CLI options, Docker, and YAML agent mode\n\n### 7. Langflow Integration 🔗 (Visual Flow Builder)\n\nBuild multi-agent workflows visually with **drag-and-drop** components in Langflow.\n\n```bash\npip install \"praisonai[flow]\"\npraisonai flow\n```\n\nOpen **http:\u002F\u002Flocalhost:7861** — use the **Agent** and **Agent Team** components to create sequential or parallel workflows. Connect Chat Input → Agent Team → Chat Output for instant multi-agent pipelines.\n\n> 📖 [Full Flow docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fflow) — visual agent building, component reference, and deployment\n\n### 8. PraisonAI UI 🤖 (Clean Chat)\n\nLightweight chat interface for your AI agents.\n\n```bash\npip install \"praisonai[ui]\"\npraisonai ui\n```\n\n---\n\n## 📄 Using YAML (No Code)\n\n### Example 1: Two Agents Working Together\n\nCreate `agents.yaml`:\n\n```yaml\nframework: praisonai\ntopic: \"Write a blog post about AI\"\n\nagents:\n  researcher:\n    role: Research Analyst\n    goal: Research AI trends and gather information\n    instructions: \"Find accurate information about AI trends\"\n    \n  writer:\n    role: Content Writer\n    goal: Write engaging blog posts\n    instructions: \"Write clear, engaging content based on research\"\n```\n\nRun with:\n```bash\npraisonai agents.yaml\n```\n\n> The agents automatically work together sequentially\n\n### Example 2: Agent with Custom Tool\n\nCreate two files in the same folder:\n\n**agents.yaml:**\n```yaml\nframework: praisonai\ntopic: \"Calculate the sum of 25 and 15\"\n\nagents:\n  calculator_agent:\n    role: Calculator\n    goal: Perform calculations\n    instructions: \"Use the add_numbers tool to help with calculations\"\n    tools:\n      - add_numbers\n```\n\n**tools.py:**\n```python\ndef add_numbers(a: float, b: float) -> float:\n    \"\"\"\n    Add two numbers together.\n    \n    Args:\n        a: First number\n        b: Second number\n    \n    Returns:\n        The sum of a and b\n    \"\"\"\n    return a + b\n```\n\nRun with:\n```bash\npraisonai agents.yaml\n```\n\n> 💡 **Tips:** \n> - Use the function name (e.g., `add_numbers`) in the tools list, not the file name\n> - Tools in `tools.py` are automatically discovered\n> - The function's docstring helps the AI understand how to use it\n\n---\n\n## 🎯 CLI Quick Reference\n\n| Category | Commands |\n|----------|----------|\n| **Execution** | `praisonai`, `--auto`, `--interactive`, `--chat` |\n| **Research** | `research`, `--query-rewrite`, `--deep-research` |\n| **Planning** | `--planning`, `--planning-tools`, `--planning-reasoning` |\n| **Workflows** | `workflow run`, `workflow list`, `workflow auto` |\n| **Memory** | `memory show`, `memory add`, `memory search`, `memory clear` |\n| **Knowledge** | `knowledge add`, `knowledge query`, `knowledge list` |\n| **Sessions** | `session list`, `session resume`, `session delete` |\n| **Tools** | `tools list`, `tools info`, `tools search` |\n| **MCP** | `mcp list`, `mcp create`, `mcp enable` |\n| **Development** | `commit`, `docs`, `checkpoint`, `hooks` |\n| **Scheduling** | `schedule start`, `schedule list`, `schedule stop` |\n\n> 📖 [Full CLI reference](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fcli-reference)\n\n---\n\n## ✨ Key Features\n\n\u003Cdetails open>\n\u003Csummary>\u003Cstrong>🤖 Core Agents\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Single Agent | [Example](examples\u002Fpython\u002Fagents\u002Fsingle-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fsingle) |\n| Multi Agents | [Example](examples\u002Fpython\u002Fgeneral\u002Fmini_agents_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagents) |\n| Auto Agents | [Example](examples\u002Fpython\u002Fgeneral\u002Fauto_agents_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fautoagents) |\n| Self Reflection AI Agents | [Example](examples\u002Fpython\u002Fconcepts\u002Fself-reflection-details.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Freflection) |\n| Reasoning AI Agents | [Example](examples\u002Fpython\u002Fconcepts\u002Freasoning-extraction.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Freasoning) |\n| Multi Modal AI Agents | [Example](examples\u002Fpython\u002Fgeneral\u002Fmultimodal.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fmultimodal) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🔄 Workflows\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Simple Workflow | [Example](examples\u002Fpython\u002Fworkflows\u002Fsimple_workflow.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagentflow) |\n| Workflow with Agents | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_with_agents.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagentflow) |\n| Agentic Routing (`route()`) | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_routing.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Frouting) |\n| Parallel Execution (`parallel()`) | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_parallel.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fparallelisation) |\n| Loop over List\u002FCSV (`loop()`) | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_loop_csv.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Frepetitive) |\n| Evaluator-Optimizer (`repeat()`) | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_repeat.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fevaluation) |\n| Conditional Steps | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_conditional.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagentflow) |\n| Workflow Branching | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_branching.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagentflow) |\n| Workflow Early Stop | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_early_stop.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagentflow) |\n| Workflow Checkpoints | [Example](examples\u002Fpython\u002Fworkflows\u002Fworkflow_checkpoints.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagentflow) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>💻 Code & Development\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Code Interpreter Agents | [Example](examples\u002Fpython\u002Fagents\u002Fcode-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fcodeagent) |\n| AI Code Editing Tools | [Example](examples\u002Fpython\u002Fcode\u002Fcode_editing_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcode\u002Fediting) |\n| External Agents (All) | [Example](examples\u002Fpython\u002Fcode\u002Fexternal_agents_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcode\u002Fexternal-agents) |\n| Claude Code CLI | [Example](examples\u002Fpython\u002Fcode\u002Fclaude_code_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcode\u002Fclaude-code) |\n| Gemini CLI | [Example](examples\u002Fpython\u002Fcode\u002Fgemini_cli_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcode\u002Fgemini-cli) |\n| Codex CLI | [Example](examples\u002Fpython\u002Fcode\u002Fcodex_cli_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcode\u002Fcodex-cli) |\n| Cursor CLI | [Example](examples\u002Fpython\u002Fcode\u002Fcursor_cli_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcode\u002Fcursor-cli) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🧠 Memory & Knowledge\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Memory (Short & Long Term) | [Example](examples\u002Fpython\u002Fgeneral\u002Fmemory_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fmemory) |\n| File-Based Memory | [Example](examples\u002Fpython\u002Fgeneral\u002Fmemory_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fmemory) |\n| Claude Memory Tool | [Example](examples\u002Fpython\u002Fmemory\u002Fclaude_memory_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fclaude-memory-tool) |\n| Add Custom Knowledge | [Example](examples\u002Fpython\u002Fconcepts\u002Fknowledge-agents.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fknowledge) |\n| RAG Agents | [Example](examples\u002Fpython\u002Fconcepts\u002Frag-agents.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Frag) |\n| Chat with PDF Agents | [Example](examples\u002Fpython\u002Fconcepts\u002Fchat-with-pdf.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fchat-with-pdf) |\n| Data Readers (PDF, DOCX, etc.) | [CLI](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fknowledge) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fchunking-strategies) |\n| Vector Store Selection | [CLI](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fknowledge) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fknowledge-backends) |\n| Retrieval Strategies | [CLI](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fknowledge) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fretrieval-strategies) |\n| Rerankers | [CLI](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fknowledge) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fsmart-retrieval) |\n| Index Types (Vector\u002FKeyword\u002FHybrid) | [CLI](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fknowledge) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fincremental-indexing) |\n| Query Engines (Sub-Question, etc.) | [CLI](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fknowledge) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fretrieval) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🔬 Research & Intelligence\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Deep Research Agents | [Example](examples\u002Fpython\u002Fagents\u002Fresearch-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fdeep-research) |\n| Query Rewriter Agent | [Example](examples\u002Fpython\u002Fagents\u002Fquery-rewriter-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fquery-rewriter) |\n| Native Web Search | [Example](examples\u002Fpython\u002Fagents\u002Fwebsearch-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fwebsearch) |\n| Built-in Search Tools | [Example](examples\u002Fpython\u002Fagents\u002Fwebsearch-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ftools\u002Ftavily) |\n| Unified Web Search | [Example](src\u002Fpraisonai-agents\u002Fexamples\u002Fweb_search_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ftools\u002Fweb-search) |\n| Web Fetch (Anthropic) | [Example](examples\u002Fpython\u002Fagents\u002Fweb-fetch-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fmodel-capabilities) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>📋 Planning & Execution\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Planning Mode | [Example](examples\u002Fpython\u002Fagents\u002Fplanning-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fplanning) |\n| Planning Tools | [Example](examples\u002Fpython\u002Fagents\u002Fplanning-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fplanning) |\n| Planning Reasoning | [Example](examples\u002Fpython\u002Fagents\u002Fplanning-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fplanning) |\n| Prompt Chaining | [Example](examples\u002Fpython\u002Fgeneral\u002Fprompt_chaining.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fpromptchaining) |\n| Evaluator Optimiser | [Example](examples\u002Fpython\u002Fgeneral\u002Fevaluator-optimiser.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fevaluation) |\n| Orchestrator Workers | [Example](examples\u002Fpython\u002Fgeneral\u002Forchestrator-workers.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Forchestration) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>👥 Specialized Agents\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Data Analyst Agent | [Example](examples\u002Fpython\u002Fagents\u002Fdata-analyst-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fdata-analyst) |\n| Finance Agent | [Example](examples\u002Fpython\u002Fagents\u002Ffinance-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Ffinance) |\n| Shopping Agent | [Example](examples\u002Fpython\u002Fagents\u002Fshopping-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fshopping) |\n| Recommendation Agent | [Example](examples\u002Fpython\u002Fagents\u002Frecommendation-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Frecommendation) |\n| Wikipedia Agent | [Example](examples\u002Fpython\u002Fagents\u002Fwikipedia-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fwikipedia) |\n| Programming Agent | [Example](examples\u002Fpython\u002Fagents\u002Fprogramming-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fprogramming) |\n| Math Agents | [Example](examples\u002Fpython\u002Fagents\u002Fmath-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fmathagent) |\n| Markdown Agent | [Example](examples\u002Fpython\u002Fagents\u002Fmarkdown-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fmarkdown) |\n| Prompt Expander Agent | [Example](examples\u002Fpython\u002Fagents\u002Fprompt-expander-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fprompt-expander) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🎨 Media & Multimodal\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Image Generation Agent | [Example](examples\u002Fpython\u002Fimage\u002Fimage-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fimage-generation) |\n| Image to Text Agent | [Example](examples\u002Fpython\u002Fagents\u002Fimage-to-text-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fimage-to-text) |\n| Video Agent | [Example](examples\u002Fpython\u002Fagents\u002Fvideo-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fagents\u002Fvideo) |\n| Camera Integration | [Example](examples\u002Fpython\u002Fcamera\u002F) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fcamera-integration) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🔌 Protocols & Integration\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| MCP Transports | [Example](examples\u002Fpython\u002Fmcp\u002Fmcp-transports-overview.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmcp\u002Ftransports) |\n| WebSocket MCP | [Example](examples\u002Fpython\u002Fmcp\u002Fwebsocket-mcp.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmcp\u002Fsse-transport) |\n| MCP Security | [Example](examples\u002Fpython\u002Fmcp\u002Fmcp-security.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmcp\u002Ftransports) |\n| MCP Resumability | [Example](examples\u002Fpython\u002Fmcp\u002Fmcp-resumability.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmcp\u002Fsse-transport) |\n| MCP Config Management | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fmcp) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fmcp) |\n| LangChain Integrated Agents | [Example](examples\u002Fpython\u002Fgeneral\u002Flangchain_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Flangchain) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🛡️ Safety & Control\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Guardrails | [Example](examples\u002Fpython\u002Fguardrails\u002Fcomprehensive-guardrails-example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fguardrails) |\n| Human Approval | [Example](examples\u002Fpython\u002Fgeneral\u002Fhuman_approval_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fapproval) |\n| Rules & Instructions | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Frules) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Frules) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>⚙️ Advanced Features\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Async & Parallel Processing | [Example](examples\u002Fpython\u002Fgeneral\u002Fasync_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fasync) |\n| Parallelisation | [Example](examples\u002Fpython\u002Fgeneral\u002Fparallelisation.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fparallelisation) |\n| Repetitive Agents | [Example](examples\u002Fpython\u002Fconcepts\u002Frepetitive-agents.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Frepetitive) |\n| Agent Handoffs | [Example](examples\u002Fpython\u002Fhandoff\u002Fhandoff_basic.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fhandoffs) |\n| Stateful Agents | [Example](examples\u002Fpython\u002Fstateful\u002Fworkflow-state-example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fstateful-agents) |\n| Autonomous Workflow | [Example](examples\u002Fpython\u002Fgeneral\u002Fautonomous-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fautonomy) |\n| Structured Output Agents | [Example](examples\u002Fpython\u002Fgeneral\u002Fstructured_agents_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fstructured) |\n| Model Router | [Example](examples\u002Fpython\u002Fagents\u002Frouter-agent-cost-optimization.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fmodel-router) |\n| Prompt Caching | [Example](examples\u002Fpython\u002Fagents\u002Fprompt-caching-agent.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fmodel-capabilities) |\n| Fast Context | [Example](examples\u002Fcontext\u002F00_agent_fast_context_basic.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Ffast-context) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🛠️ Tools & Configuration\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| 100+ Custom Tools | [Example](examples\u002Fpython\u002Fgeneral\u002Ftools_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ftools\u002Ftools) |\n| YAML Configuration | [Example](examples\u002Fcookbooks\u002Fyaml\u002Fsecondary_market_research_agents.yaml) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fdevelopers\u002Fagents-playbook) |\n| 100+ LLM Support | [Example](examples\u002Fpython\u002Fproviders\u002Fopenai\u002Fopenai_gpt4_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmodels) |\n| Callback Agents | [Example](examples\u002Fpython\u002Fgeneral\u002Fadvanced-callback-systems.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fhooks) |\n| Hooks | [Example](examples\u002Fpython\u002Fhooks\u002Fhooks_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fhooks) |\n| Middleware System | [Example](examples\u002Fmiddleware\u002Fbasic_middleware.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fmiddleware) |\n| Configurable Model | [Example](examples\u002Fmiddleware\u002Fconfigurable_model.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fconfigurable-model) |\n| Rate Limiter | [Example](examples\u002Fmiddleware\u002Frate_limiter.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Frate-limiter) |\n| Injected Tool State | [Example](examples\u002Fmiddleware\u002Finjected_state.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Finjected-state) |\n| Shadow Git Checkpoints | [Example](examples\u002Fcheckpoints\u002Fbasic_checkpoint.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fcheckpoints) |\n| Background Tasks | [Example](examples\u002Fbackground\u002Fbasic_background.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fbackground-tasks) |\n| Policy Engine | [Example](examples\u002Fpolicy\u002Fbasic_policy.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fpolicy-engine) |\n| Thinking Budgets | [Example](examples\u002Fthinking\u002Fbasic_thinking.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fthinking-budgets) |\n| Output Styles | [Example](examples\u002Foutput\u002Fbasic_output.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Foutput-styles) |\n| Context Compaction | [Example](examples\u002Fcompaction\u002Fbasic_compaction.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Fcontext-compaction) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>📊 Monitoring & Management\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Sessions Management | [Example](examples\u002Fpython\u002Fsessions\u002Fcomprehensive-session-management.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fsession-management) |\n| Auto-Save Sessions | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fsession) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fsession) |\n| History in Context | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fsession) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fsession) |\n| Telemetry | [Example](examples\u002Fpython\u002Ftelemetry\u002Fproduction-telemetry-example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Ffeatures\u002Ftelemetry) |\n| Langfuse Tracing | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fobservability\u002Flangfuse) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fobservability\u002Flangfuse) |\n| Project Docs (.praison\u002Fdocs\u002F) | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fdocs) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fdocs) |\n| AI Commit Messages | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fcommit) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fcommit) |\n| @Mentions in Prompts | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fmentions) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fmentions) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🖥️ CLI Features\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Slash Commands | [Example](examples\u002Fpython\u002Fcli\u002Fslash_commands_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fslash-commands) |\n| Autonomy Modes | [Example](examples\u002Fpython\u002Fcli\u002Fautonomy_modes_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fautonomy-modes) |\n| Cost Tracking | [Example](examples\u002Fpython\u002Fcli\u002Fcost_tracking_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fcost-tracking) |\n| Repository Map | [Example](examples\u002Fpython\u002Fcli\u002Frepo_map_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Frepo-map) |\n| Interactive TUI | [Example](examples\u002Fpython\u002Fcli\u002Finteractive_tui_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Finteractive-tui) |\n| Git Integration | [Example](examples\u002Fpython\u002Fcli\u002Fgit_integration_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fgit-integration) |\n| Sandbox Execution | [Example](examples\u002Fpython\u002Fcli\u002Fsandbox_execution_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fsandbox-execution) |\n| CLI Compare | [Example](examples\u002Fcompare\u002Fcli_compare_basic.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fcompare) |\n| Profile\u002FBenchmark | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fprofile) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fprofile) |\n| Auto Mode | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fauto) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fauto) |\n| Init | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Finit) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Finit) |\n| File Input | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Ffile-input) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Ffile-input) |\n| Final Agent | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Ffinal-agent) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Ffinal-agent) |\n| Max Tokens | [Docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fmax-tokens) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fmax-tokens) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🧪 Evaluation\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Accuracy Evaluation | [Example](examples\u002Feval\u002Faccuracy_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Feval) |\n| Performance Evaluation | [Example](examples\u002Feval\u002Fperformance_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Feval) |\n| Reliability Evaluation | [Example](examples\u002Feval\u002Freliability_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Feval) |\n| Criteria Evaluation | [Example](examples\u002Feval\u002Fcriteria_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Feval) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>🎯 Agent Skills\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Skills Management | [Example](examples\u002Fskills\u002Fbasic_skill_usage.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fskills) |\n| Custom Skills | [Example](examples\u002Fskills\u002Fcustom_skill_example.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fskills) |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>⏰ 24\u002F7 Scheduling\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Feature | Code | Docs |\n|---------|:----:|:----:|\n| Agent Scheduler | [Example](examples\u002Fpython\u002Fscheduled_agents\u002Fnews_checker_live.py) | [📖](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fcli\u002Fscheduler) |\n\n\u003C\u002Fdetails>\n\n---\n\n## 💻 Using JavaScript Code\n\n```bash\nnpm install praisonai\nexport OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx\n```\n\n```javascript\nconst { Agent } = require('praisonai');\nconst agent = new Agent({ instructions: 'You are a helpful AI assistant' });\nagent.start('Write a movie script about a robot in Mars');\n```\n\n---\n\n## ⚡ Performance\n\nPraisonAI is built for speed, with agent instantiation in under 4μs. This reduces overhead, improves responsiveness, and helps multi-agent systems scale efficiently in real-world production workloads.\n\n| Performance Metric | PraisonAI |\n|--------------------|-----------|\n| Avg Instantiation Time | **3.77 μs** |\n\n---\n\n\n\n---\n\n## ⭐ Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=MervinPraison\u002FPraisonAI&type=Date)](https:\u002F\u002Fdocs.praison.ai)\n\n---\n\n## 🔍 Langfuse Tracing\n\n```bash\npip install \"praisonai[langfuse]\"\npraisonai langfuse\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".github\u002Fimages\u002Flangfuse.png\" alt=\"PraisonAI Langfuse Tracing\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\n---\n\n## 🎓 Video Tutorials\n\nLearn PraisonAI through our comprehensive video series:\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>View all 22 video tutorials\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n| Topic | Video |\n|-------|--------|\n| AI Agents with Self Reflection | [![Self Reflection](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FvLXobEN2Vc8\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vLXobEN2Vc8) |\n| Reasoning Data Generating Agent | [![Reasoning Data](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FfUT332Y2zA8\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=fUT332Y2zA8) |\n| AI Agents with Reasoning | [![Reasoning](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FKNDVWGN3TpM\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KNDVWGN3TpM) |\n| Multimodal AI Agents | [![Multimodal](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FhjAWmUT1qqY\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=hjAWmUT1qqY) |\n| AI Agents Workflow | [![Workflow](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FyWTH44QPl2A\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=yWTH44QPl2A) |\n| Async AI Agents | [![Async](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FVhVQfgo00LE\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=VhVQfgo00LE) |\n| Mini AI Agents | [![Mini](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FOkvYp5aAGSg\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=OkvYp5aAGSg) |\n| AI Agents with Memory | [![Memory](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002F1hVfVxvPnnQ\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1hVfVxvPnnQ) |\n| Repetitive Agents | [![Repetitive](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FdAYGxsjDOPg\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dAYGxsjDOPg) |\n| Introduction | [![Introduction](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FFn1lQjC0GO0\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Fn1lQjC0GO0) |\n| Tools Overview | [![Tools Overview](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FXaQRgRpV7jo\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=XaQRgRpV7jo) |\n| Custom Tools | [![Custom Tools](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FJSU2Rndh06c\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JSU2Rndh06c) |\n| Firecrawl Integration | [![Firecrawl](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FUoqUDcLcOYo\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=UoqUDcLcOYo) |\n| User Interface | [![UI](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002Ftg-ZjNl3OCg\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=tg-ZjNl3OCg) |\n| Crawl4AI Integration | [![Crawl4AI](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FKAvuVUh0XU8\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KAvuVUh0XU8) |\n| Chat Interface | [![Chat](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002Fsw3uDqn2h1Y\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sw3uDqn2h1Y) |\n| Code Interface | [![Code](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002F_5jQayO-MQY\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_5jQayO-MQY) |\n| Mem0 Integration | [![Mem0](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FKIGSgRxf1cY\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KIGSgRxf1cY) |\n| Training | [![Training](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FaLawE8kwCrI\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=aLawE8kwCrI) |\n| Realtime Voice Interface | [![Realtime](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002FfrRHfevTCSw\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=frRHfevTCSw) |\n| Call Interface | [![Call](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002Fm1cwrUG2iAk\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=m1cwrUG2iAk) |\n| Reasoning Extract Agents | [![Reasoning Extract](https:\u002F\u002Fimg.youtube.com\u002Fvi\u002F2PPamsADjJA\u002F0.jpg)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2PPamsADjJA) |\n\n\u003C\u002Fdetails>\n\n---\n\n## 👥 Contributing\n\nWe welcome contributions! Fork the repo, create a branch, and submit a PR → [Contributing Guide](https:\u002F\u002Fgithub.com\u002FMervinPraison\u002FPraisonAI\u002Fblob\u002Fmain\u002FCONTRIBUTING.md).\n\n---\n\n## ❓ FAQ & Troubleshooting\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>ModuleNotFoundError: No module named 'praisonaiagents'\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nInstall the package:\n```bash\npip install praisonaiagents\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>API key not found \u002F Authentication error\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nEnsure your API key is set:\n```bash\nexport OPENAI_API_KEY=your_key_here\n```\n\nFor other providers, see [Models docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmodels).\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>How do I use a local model (Ollama)?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```bash\n# Start Ollama server first\nollama serve\n\n# Set environment variable\nexport OPENAI_BASE_URL=http:\u002F\u002Flocalhost:11434\u002Fv1\n```\n\nSee [Models docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmodels) for more details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>How do I persist conversations to a database?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\nUse the `db` parameter:\n```python\nfrom praisonaiagents import Agent, db\n\nagent = Agent(\n    name=\"Assistant\",\n    db=db(database_url=\"postgresql:\u002F\u002Flocalhost\u002Fmydb\"),\n    session_id=\"my-session\"\n)\n```\n\nSee [Persistence docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fdatabases\u002Foverview) for supported databases.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>How do I enable agent memory?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```python\nfrom praisonaiagents import Agent\n\nagent = Agent(\n    name=\"Assistant\",\n    memory=True,  # Enables file-based memory (no extra deps!)\n    user_id=\"user123\"\n)\n```\n\nSee [Memory docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fmemory) for more options.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>How do I run multiple agents together?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```python\nfrom praisonaiagents import Agent, Agents\n\nagent1 = Agent(instructions=\"Research topics\")\nagent2 = Agent(instructions=\"Summarize findings\")\nagents = Agents(agents=[agent1, agent2])\nagents.start()\n```\n\nSee [Agents docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fconcepts\u002Fagents) for more examples.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>How do I use MCP tools?\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n```python\nfrom praisonaiagents import Agent, MCP\n\nagent = Agent(\n    tools=MCP(\"npx @modelcontextprotocol\u002Fserver-memory\")\n)\n```\n\nSee [MCP docs](https:\u002F\u002Fdocs.praison.ai\u002Fdocs\u002Fmcp\u002Ftransports) for all transport options.\n\n\u003C\u002Fdetails>\n\n### Getting Help\n\n- 📚 [Full Documentation](https:\u002F\u002Fdocs.praison.ai)\n- 🐛 [Report Issues](https:\u002F\u002Fgithub.com\u002FMervinPraison\u002FPraisonAI\u002Fissues)\n- 💬 [Discussions](https:\u002F\u002Fgithub.com\u002FMervinPraison\u002FPraisonAI\u002Fdiscussions)\n\n---\n\n\u003Cdiv align=\"center\">\n  \u003Cp>\u003Cstrong>Made with ❤️ by the PraisonAI Team\u003C\u002Fstrong>\u003C\u002Fp>\n  \u003Cp>\n    \u003Ca href=\"https:\u002F\u002Fdocs.praison.ai\">📚 Documentation\u003C\u002Fa> •\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMervinPraison\u002FPraisonAI\">GitHub\u003C\u002Fa> •\n    \u003Ca href=\"https:\u002F\u002Fyoutube.com\u002F@MervinPraison\">▶️ YouTube\u003C\u002Fa> •\n    \u003Ca href=\"https:\u002F\u002Fx.com\u002FMervinPraison\">𝕏 X\u003C\u002Fa> •\n    \u003Ca href=\"https:\u002F\u002Flinkedin.com\u002Fin\u002Fmervinpraison\">💼 LinkedIn\u003C\u002Fa>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n","PraisonAI 是一个用于创建和部署自主改进的AI代理的框架，旨在帮助用户快速构建能够研究、规划、编码和执行任务的智能代理。其核心功能包括内置的记忆系统、检索增强生成（RAG）技术以及对100多种大型语言模型的支持，允许开发者仅用几行代码就能启动复杂的多代理系统。适用于需要自动化处理重复性高或信息密集型任务的场景，如数据分析、内容生成、软件开发辅助等领域。",2,"2026-06-11 03:39:59","high_star"]