/ README.md
README.md
  1  <p align="center">
  2    <picture>
  3      <source media="(prefers-color-scheme: dark)" srcset=".github/images/logo_dark.png" />
  4      <source media="(prefers-color-scheme: light)" srcset=".github/images/logo_light.png" />
  5      <img alt="PraisonAI Logo" src=".github/images/logo_light.png" width="250" />
  6    </picture>
  7  </p>
  8  
  9  <!-- mcp-name: io.github.MervinPraison/praisonai -->
 10  
 11  <p align="center">
 12  <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://static.pepy.tech/badge/PraisonAI" alt="Total Downloads" /></a>
 13  <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/github/v/release/MervinPraison/PraisonAI" alt="Latest Stable Version" /></a>
 14  <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License" /></a>
 15  <a href="https://registry.modelcontextprotocol.io/servers/io.github.MervinPraison/praisonai"><img src="https://img.shields.io/badge/MCP-Registry-blue" alt="MCP Registry" /></a>
 16  </p>
 17  
 18  <div align="center">
 19  
 20  # PraisonAI 🦞
 21  
 22  <a href="https://trendshift.io/repositories/9130" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9130" alt="MervinPraison%2FPraisonAI | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
 23  
 24  </div>
 25  
 26  PraisonAI 🦞 β€” **Hire a 24/7 AI Workforce.** Stop writing boilerplate and start shipping autonomous agents that research, plan, and execute tasks across your apps. From one agent to an entire organization, deployed in 5 lines of code.
 27  
 28  ```bash
 29  curl -fsSL https://praison.ai/install.sh | bash
 30  ```
 31  
 32  <div align="center">
 33    <br>
 34    <a href="https://x.com/elonmusk/status/1893870468249141688" target="_blank">
 35      <img src="https://img.shields.io/badge/Highlighted_by_Elon_Musk-000000?style=for-the-badge&logo=x&logoColor=white" alt="Highlighted by Elon Musk" />
 36    </a>
 37    <br>
 38  </div>
 39  
 40  <p align="center">
 41    <img src=".github/images/dashboard.png" alt="PraisonAI Dashboard" width="800" />
 42  </p>
 43  
 44  <p align="center">
 45    <img src=".github/images/agentflow.gif" alt="PraisonAI AgentFlow" width="800" />
 46  </p>
 47  
 48  ```
 49   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—
 50   β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘
 51   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 52   β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 53   β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘    β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 54   β•šβ•β•     β•šβ•β•  β•šβ•β•β•šβ•β•  β•šβ•β•β•šβ•β•β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β•β•β•    β•šβ•β•  β•šβ•β•β•šβ•β•
 55  
 56   pip install praisonai
 57  ```
 58  
 59  <p align="center">
 60    <img src=".github/images/latest_ai_news_and_crawl_each_url_to_find_info.gif" alt="PraisonAI command execution" width="800" />
 61  </p>
 62  
 63  \* `export TAVILY_API_KEY=xxxxx`
 64  
 65  <div align="center">
 66    <a href="https://docs.praison.ai">
 67      <p align="center">
 68        <img src="https://img.shields.io/badge/πŸ“š_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" />
 69      </p>
 70    </a>
 71  </div>
 72  
 73  ---
 74  
 75  ## 🎯 Use Cases
 76  
 77  AI agents solving real-world problems across industries:
 78  
 79  | Use Case | Description |
 80  |----------|-------------|
 81  | πŸ” **Research & Analysis** | Conduct deep research, gather information, and generate insights from multiple sources automatically |
 82  | πŸ’» **Code Generation** | Write, debug, and refactor code with AI agents that understand your codebase and requirements |
 83  | ✍️ **Content Creation** | Generate blog posts, documentation, marketing copy, and technical writing with multi-agent teams |
 84  | πŸ“Š **Data Pipelines** | Extract, transform, and analyze data from APIs, databases, and web sources automatically |
 85  | πŸ€– **Customer Support** | Deploy 24/7 support bots on Telegram, Discord, Slack with memory and knowledge-backed responses |
 86  | βš™οΈ **Workflow Automation** | Automate multi-step business processes with agents that hand off tasks, verify results, and self-correct |
 87  
 88  ---
 89  
 90  ## πŸš€ Meet your first Agent (Under 1 Minute)
 91  
 92  1. Install the lightweight core SDK:
 93  ```bash
 94  pip install praisonaiagents
 95  export OPENAI_API_KEY="your-api-key"
 96  ```
 97  
 98  2. Run your first autonomous agent:
 99  ```python
100  from praisonaiagents import Agent
101  
102  # Give your agent a goal, and watch it work.
103  agent = Agent(instructions="You are a senior data analyst.")
104  agent.start("Analyze the top 3 tech trends of 2026 and format as a markdown table.")
105  ```
106  
107  ---
108  
109  ## 🌌 The PraisonAI Ecosystem
110  
111  Start simple with the core SDK, or expand to full visual builders and dashboards when you're ready.
112  
113  *   **Core SDK (`praisonaiagents`)**: For pure Python development. `pip install praisonaiagents`
114  *   πŸ’» **PraisonAI CLI (`praisonai`)**: For terminal-based developers. `pip install praisonai`
115  *   🦞 **Claw Dashboard**: Connect agents directly to Telegram, Slack, or Discord. `pip install "praisonai[claw]"`
116  *   πŸ”— **Flow Visual Builder**: Drag-and-drop workflow creation. `pip install "praisonai[flow]"`
117  *   πŸ€– **PraisonAI UI**: Clean chat interface. `pip install "praisonai[ui]"`
118  
119  ### JavaScript SDK
120  
121  ```bash
122  npm install praisonai
123  ```
124  
125  ## 🧠 Supported Providers & Features
126  
127  Powered by 100+ LLMs (OpenAI, Anthropic, Gemini & local models).
128  
129  <p align="center">
130  <img src="https://img.shields.io/badge/OpenAI-412991?style=flat&logo=openai&logoColor=white" alt="OpenAI" />
131  <img src="https://img.shields.io/badge/Anthropic-191919?style=flat&logo=anthropic&logoColor=white" alt="Anthropic" />
132  <img src="https://img.shields.io/badge/Google_Gemini-4285F4?style=flat&logo=google&logoColor=white" alt="Google Gemini" />
133  <img src="https://img.shields.io/badge/DeepSeek-566AB2?style=flat" alt="DeepSeek" />
134  <img src="https://img.shields.io/badge/Azure-0078D4?style=flat&logo=microsoftazure&logoColor=white" alt="Azure" />
135  <img src="https://img.shields.io/badge/Ollama-000000?style=flat" alt="Ollama" />
136  <img src="https://img.shields.io/badge/Groq-F05237?style=flat" alt="Groq" />
137  <img src="https://img.shields.io/badge/Mistral-FF7000?style=flat" alt="Mistral" />
138  <img src="https://img.shields.io/badge/Cerebras-F05A28?style=flat" alt="Cerebras" />
139  <img src="https://img.shields.io/badge/Cohere-39594D?style=flat" alt="Cohere" />
140  <img src="https://img.shields.io/badge/OpenRouter-6467F2?style=flat" alt="OpenRouter" />
141  <img src="https://img.shields.io/badge/Perplexity-20808D?style=flat" alt="Perplexity" />
142  <img src="https://img.shields.io/badge/Fireworks-FF6B35?style=flat" alt="Fireworks" />
143  <img src="https://img.shields.io/badge/AWS_Bedrock-FF9900?style=flat&logo=amazonaws&logoColor=white" alt="AWS Bedrock" />
144  <img src="https://img.shields.io/badge/xAI_Grok-000000?style=flat" alt="xAI Grok" />
145  <img src="https://img.shields.io/badge/Vertex_AI-4285F4?style=flat&logo=googlecloud&logoColor=white" alt="Vertex AI" />
146  <img src="https://img.shields.io/badge/HuggingFace-FFD21E?style=flat&logo=huggingface&logoColor=black" alt="HuggingFace" />
147  <img src="https://img.shields.io/badge/Together_AI-000000?style=flat" alt="Together AI" />
148  <img src="https://img.shields.io/badge/Databricks-FF3621?style=flat&logo=databricks&logoColor=white" alt="Databricks" />
149  <img src="https://img.shields.io/badge/Replicate-262626?style=flat" alt="Replicate" />
150  <img src="https://img.shields.io/badge/Cloudflare-F38020?style=flat&logo=cloudflare&logoColor=white" alt="Cloudflare" />
151  </p>
152  
153  <details>
154  <summary><strong>View all 24 providers with examples</strong></summary>
155  
156  | Provider | Example |
157  |----------|:-------:|
158  | OpenAI | [Example](examples/python/providers/openai/openai_gpt4_example.py) |
159  | Anthropic | [Example](examples/python/providers/anthropic/anthropic_claude_example.py) |
160  | Google Gemini | [Example](examples/python/providers/google/google_gemini_example.py) |
161  | Ollama | [Example](examples/python/providers/ollama/ollama-agents.py) |
162  | Groq | [Example](examples/python/providers/groq/kimi_with_groq_example.py) |
163  | DeepSeek | [Example](examples/python/providers/deepseek/deepseek_example.py) |
164  | xAI Grok | [Example](examples/python/providers/xai/xai_grok_example.py) |
165  | Mistral | [Example](examples/python/providers/mistral/mistral_example.py) |
166  | Cohere | [Example](examples/python/providers/cohere/cohere_example.py) |
167  | Perplexity | [Example](examples/python/providers/perplexity/perplexity_example.py) |
168  | Fireworks | [Example](examples/python/providers/fireworks/fireworks_example.py) |
169  | Together AI | [Example](examples/python/providers/together/together_ai_example.py) |
170  | OpenRouter | [Example](examples/python/providers/openrouter/openrouter_example.py) |
171  | HuggingFace | [Example](examples/python/providers/huggingface/huggingface_example.py) |
172  | Azure OpenAI | [Example](examples/python/providers/azure/azure_openai_example.py) |
173  | AWS Bedrock | [Example](examples/python/providers/aws/aws_bedrock_example.py) |
174  | Google Vertex | [Example](examples/python/providers/vertex/vertex_example.py) |
175  | Databricks | [Example](examples/python/providers/databricks/databricks_example.py) |
176  | Cloudflare | [Example](examples/python/providers/cloudflare/cloudflare_example.py) |
177  | AI21 | [Example](examples/python/providers/ai21/ai21_example.py) |
178  | Replicate | [Example](examples/python/providers/replicate/replicate_example.py) |
179  | SageMaker | [Example](examples/python/providers/sagemaker/sagemaker_example.py) |
180  | Moonshot | [Example](examples/python/providers/moonshot/moonshot_example.py) |
181  | vLLM | [Example](examples/python/providers/vllm/vllm_example.py) |
182  
183  </details>
184  
185  <div align="center">
186    <a href="https://x.com/elonmusk/status/1893870468249141688" target="_blank">
187      <img src=".github/images/elon_musk_praisonai.png" alt="Highlighted by Elon Musk" width="600" />
188    </a>
189    <p><em>"Grok 3 customer support" β€” <a href="https://x.com/elonmusk/status/1893870468249141688">Elon Musk quoting PraisonAI's tutorial</a></em></p>
190  </div>
191  <br>
192  
193  ---
194  
195  ## 🌟 Why PraisonAI?
196  
197  | | Feature | How |
198  |--|---------|-----|
199  | πŸ”Œ | **MCP Protocol** β€” stdio, HTTP, WebSocket, SSE | `tools=MCP("npx ...")` |
200  | 🧠 | **Planning Mode** β€” plan β†’ execute β†’ reason | `planning=True` |
201  | πŸ” | **Deep Research** β€” multi-step autonomous research | [Docs](https://docs.praison.ai/docs/agents/deep-research) |
202  | πŸ€– | **External Agents** β€” orchestrate Claude Code, Gemini CLI, Codex | [Docs](https://docs.praison.ai/docs/code/external-agents) |
203  | πŸ”„ | **Agent Handoffs** β€” seamless conversation passing | `handoff=True` |
204  | πŸ›‘οΈ | **Guardrails** β€” input/output validation | [Docs](https://docs.praison.ai/docs/concepts/guardrails) |
205  |  | **Web Search + Fetch** β€” native browsing | `web_search=True` |
206  | πŸͺž | **Self Reflection** β€” agent reviews its own output | [Docs](https://docs.praison.ai/docs/concepts/reflection) |
207  | πŸ”€ | **Workflow Patterns** β€” route, parallel, loop, repeat | [Docs](https://docs.praison.ai/docs/concepts/agentflow) |
208  | 🧠 | **Memory (zero deps)** β€” works out of the box | `memory=True` |
209  
210  <details>
211  <summary><strong>View all 25 features</strong></summary>
212  
213  | | Feature | How |
214  |--|---------|-----|
215  | πŸ’‘ | **Prompt Caching** β€” reduce latency + cost | `prompt_caching=True` |
216  | πŸ’Ύ | **Sessions + Auto-Save** β€” persistent state across restarts | `auto_save="my-project"` |
217  | πŸ’­ | **Thinking Budgets** β€” control reasoning depth | `thinking_budget=1024` |
218  | πŸ“š | **RAG + Quality-Based RAG** β€” auto quality scoring retrieval | [Docs](https://docs.praison.ai/docs/concepts/rag) |
219  | πŸ“Š | **Model Router** β€” auto-routes to cheapest capable model | [Docs](https://docs.praison.ai/docs/features/model-router) |
220  | 🧊 | **Shadow Git Checkpoints** β€” auto-rollback on failure | [Docs](https://docs.praison.ai/docs/features/checkpoints) |
221  | πŸ“‘ | **A2A Protocol** β€” agent-to-agent interop | [Docs](https://docs.praison.ai/docs/features/a2a) |
222  | πŸ“ | **Context Compaction** β€” never hit token limits | [Docs](https://docs.praison.ai/docs/features/context-compaction) |
223  | πŸ“‘ | **Telemetry** β€” OpenTelemetry traces, spans, metrics | [Docs](https://docs.praison.ai/docs/features/telemetry) |
224  | πŸ“œ | **Policy Engine** β€” declarative agent behavior control | [Docs](https://docs.praison.ai/docs/features/policy-engine) |
225  | πŸ”„ | **Background Tasks** β€” fire-and-forget agents | [Docs](https://docs.praison.ai/docs/features/background-tasks) |
226  | πŸ” | **Doom Loop Detection** β€” auto-recovery from stuck agents | [Docs](https://docs.praison.ai/docs/features/doom-loop-detection) |
227  | πŸ•ΈοΈ | **Graph Memory** β€” Neo4j-style relationship tracking | [Docs](https://docs.praison.ai/docs/features/graph-memory) |
228  | πŸ–οΈ | **Sandbox Execution** β€” isolated code execution | [Docs](https://docs.praison.ai/docs/features/sandbox) |
229  | πŸ–₯️ | **Bot Gateway** β€” multi-agent routing across channels | [Docs](https://docs.praison.ai/docs/features/bot-gateway) |
230  
231  </details>
232  
233  
234  
235  
236  ---
237  
238  ## πŸ“˜ Using Python Code
239  
240  ### 1. Single Agent
241  
242  ```python
243  from praisonaiagents import Agent
244  agent = Agent(instructions="You are a helpful AI assistant")
245  agent.start("Write a movie script about a robot in Mars")
246  ```
247  
248  ### 2. Multi Agents
249  
250  ```python
251  from praisonaiagents import Agent, Agents
252  
253  research_agent = Agent(instructions="Research about AI")
254  summarise_agent = Agent(instructions="Summarise research agent's findings")
255  agents = Agents(agents=[research_agent, summarise_agent])
256  agents.start()
257  ```
258  
259  ### 3. MCP (Model Context Protocol)
260  
261  ```python
262  from praisonaiagents import Agent, MCP
263  
264  # stdio - Local NPX/Python servers
265  agent = Agent(tools=MCP("npx @modelcontextprotocol/server-memory"))
266  
267  # Streamable HTTP - Production servers
268  agent = Agent(tools=MCP("https://api.example.com/mcp"))
269  
270  # WebSocket - Real-time bidirectional
271  agent = Agent(tools=MCP("wss://api.example.com/mcp", auth_token="token"))
272  
273  # With environment variables
274  agent = Agent(
275      tools=MCP(
276          command="npx",
277          args=["-y", "@modelcontextprotocol/server-brave-search"],
278          env={"BRAVE_API_KEY": "your-key"}
279      )
280  )
281  ```
282  
283  > πŸ“– [Full MCP docs](https://docs.praison.ai/docs/mcp/transports) β€” stdio, HTTP, WebSocket, SSE transports
284  
285  ### 4. Custom Tools
286  
287  ```python
288  from praisonaiagents import Agent, tool
289  
290  @tool
291  def search(query: str) -> str:
292      """Search the web for information."""
293      return f"Results for: {query}"
294  
295  @tool
296  def calculate(expression: str) -> float:
297      """Evaluate a math expression."""
298      return eval(expression)
299  
300  agent = Agent(
301      instructions="You are a helpful assistant",
302      tools=[search, calculate]
303  )
304  agent.start("Search for AI news and calculate 15*4")
305  ```
306  
307  > πŸ“– [Full tools docs](https://docs.praison.ai/docs/tools/tools) β€” BaseTool, tool packages, 100+ built-in tools
308  
309  ### 5. Persistence (Databases)
310  
311  ```python
312  from praisonaiagents import Agent, db
313  
314  agent = Agent(
315      name="Assistant",
316      db=db(database_url="postgresql://localhost/mydb"),
317      session_id="my-session"
318  )
319  agent.chat("Hello!")  # Auto-persists messages, runs, traces
320  ```
321  
322  > πŸ“– [Full persistence docs](https://docs.praison.ai/docs/databases/overview) β€” PostgreSQL, MySQL, SQLite, MongoDB, Redis, and 20+ more
323  
324  ### 6. PraisonAI Claw 🦞 (Dashboard UI)
325  
326  Connect your AI agents to **Telegram, Discord, Slack, WhatsApp** and more β€” all from a single command.
327  
328  ```bash
329  pip install "praisonai[claw]"
330  praisonai claw
331  ```
332  
333  Open **http://localhost: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.
334  
335  > πŸ“– [Full Claw docs](https://docs.praison.ai/docs/concepts/claw) β€” platform tokens, CLI options, Docker, and YAML agent mode
336  
337  ### 7. Langflow Integration πŸ”— (Visual Flow Builder)
338  
339  Build multi-agent workflows visually with **drag-and-drop** components in Langflow.
340  
341  ```bash
342  pip install "praisonai[flow]"
343  praisonai flow
344  ```
345  
346  Open **http://localhost: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.
347  
348  > πŸ“– [Full Flow docs](https://docs.praison.ai/docs/concepts/flow) β€” visual agent building, component reference, and deployment
349  
350  ### 8. PraisonAI UI πŸ€– (Clean Chat)
351  
352  Lightweight chat interface for your AI agents.
353  
354  ```bash
355  pip install "praisonai[ui]"
356  praisonai ui
357  ```
358  
359  ---
360  
361  ## πŸ“„ Using YAML (No Code)
362  
363  ### Example 1: Two Agents Working Together
364  
365  Create `agents.yaml`:
366  
367  ```yaml
368  framework: praisonai
369  topic: "Write a blog post about AI"
370  
371  agents:
372    researcher:
373      role: Research Analyst
374      goal: Research AI trends and gather information
375      instructions: "Find accurate information about AI trends"
376      
377    writer:
378      role: Content Writer
379      goal: Write engaging blog posts
380      instructions: "Write clear, engaging content based on research"
381  ```
382  
383  Run with:
384  ```bash
385  praisonai agents.yaml
386  ```
387  
388  > The agents automatically work together sequentially
389  
390  ### Example 2: Agent with Custom Tool
391  
392  Create two files in the same folder:
393  
394  **agents.yaml:**
395  ```yaml
396  framework: praisonai
397  topic: "Calculate the sum of 25 and 15"
398  
399  agents:
400    calculator_agent:
401      role: Calculator
402      goal: Perform calculations
403      instructions: "Use the add_numbers tool to help with calculations"
404      tools:
405        - add_numbers
406  ```
407  
408  **tools.py:**
409  ```python
410  def add_numbers(a: float, b: float) -> float:
411      """
412      Add two numbers together.
413      
414      Args:
415          a: First number
416          b: Second number
417      
418      Returns:
419          The sum of a and b
420      """
421      return a + b
422  ```
423  
424  Run with:
425  ```bash
426  praisonai agents.yaml
427  ```
428  
429  > πŸ’‘ **Tips:** 
430  > - Use the function name (e.g., `add_numbers`) in the tools list, not the file name
431  > - Tools in `tools.py` are automatically discovered
432  > - The function's docstring helps the AI understand how to use it
433  
434  ---
435  
436  ## 🎯 CLI Quick Reference
437  
438  | Category | Commands |
439  |----------|----------|
440  | **Execution** | `praisonai`, `--auto`, `--interactive`, `--chat` |
441  | **Research** | `research`, `--query-rewrite`, `--deep-research` |
442  | **Planning** | `--planning`, `--planning-tools`, `--planning-reasoning` |
443  | **Workflows** | `workflow run`, `workflow list`, `workflow auto` |
444  | **Memory** | `memory show`, `memory add`, `memory search`, `memory clear` |
445  | **Knowledge** | `knowledge add`, `knowledge query`, `knowledge list` |
446  | **Sessions** | `session list`, `session resume`, `session delete` |
447  | **Tools** | `tools list`, `tools info`, `tools search` |
448  | **MCP** | `mcp list`, `mcp create`, `mcp enable` |
449  | **Development** | `commit`, `docs`, `checkpoint`, `hooks` |
450  | **Scheduling** | `schedule start`, `schedule list`, `schedule stop` |
451  
452  > πŸ“– [Full CLI reference](https://docs.praison.ai/docs/cli/cli-reference)
453  
454  ---
455  
456  ## ✨ Key Features
457  
458  <details open>
459  <summary><strong>πŸ€– Core Agents</strong></summary>
460  
461  | Feature | Code | Docs |
462  |---------|:----:|:----:|
463  | Single Agent | [Example](examples/python/agents/single-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/single) |
464  | Multi Agents | [Example](examples/python/general/mini_agents_example.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/agents) |
465  | Auto Agents | [Example](examples/python/general/auto_agents_example.py) | [πŸ“–](https://docs.praison.ai/docs/features/autoagents) |
466  | Self Reflection AI Agents | [Example](examples/python/concepts/self-reflection-details.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/reflection) |
467  | Reasoning AI Agents | [Example](examples/python/concepts/reasoning-extraction.py) | [πŸ“–](https://docs.praison.ai/docs/features/reasoning) |
468  | Multi Modal AI Agents | [Example](examples/python/general/multimodal.py) | [πŸ“–](https://docs.praison.ai/docs/features/multimodal) |
469  
470  </details>
471  
472  <details>
473  <summary><strong>πŸ”„ Workflows</strong></summary>
474  
475  | Feature | Code | Docs |
476  |---------|:----:|:----:|
477  | Simple Workflow | [Example](examples/python/workflows/simple_workflow.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/agentflow) |
478  | Workflow with Agents | [Example](examples/python/workflows/workflow_with_agents.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/agentflow) |
479  | Agentic Routing (`route()`) | [Example](examples/python/workflows/workflow_routing.py) | [πŸ“–](https://docs.praison.ai/docs/features/routing) |
480  | Parallel Execution (`parallel()`) | [Example](examples/python/workflows/workflow_parallel.py) | [πŸ“–](https://docs.praison.ai/docs/features/parallelisation) |
481  | Loop over List/CSV (`loop()`) | [Example](examples/python/workflows/workflow_loop_csv.py) | [πŸ“–](https://docs.praison.ai/docs/features/repetitive) |
482  | Evaluator-Optimizer (`repeat()`) | [Example](examples/python/workflows/workflow_repeat.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/evaluation) |
483  | Conditional Steps | [Example](examples/python/workflows/workflow_conditional.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/agentflow) |
484  | Workflow Branching | [Example](examples/python/workflows/workflow_branching.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/agentflow) |
485  | Workflow Early Stop | [Example](examples/python/workflows/workflow_early_stop.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/agentflow) |
486  | Workflow Checkpoints | [Example](examples/python/workflows/workflow_checkpoints.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/agentflow) |
487  
488  </details>
489  
490  <details>
491  <summary><strong>πŸ’» Code & Development</strong></summary>
492  
493  | Feature | Code | Docs |
494  |---------|:----:|:----:|
495  | Code Interpreter Agents | [Example](examples/python/agents/code-agent.py) | [πŸ“–](https://docs.praison.ai/docs/features/codeagent) |
496  | AI Code Editing Tools | [Example](examples/python/code/code_editing_example.py) | [πŸ“–](https://docs.praison.ai/docs/code/editing) |
497  | External Agents (All) | [Example](examples/python/code/external_agents_example.py) | [πŸ“–](https://docs.praison.ai/docs/code/external-agents) |
498  | Claude Code CLI | [Example](examples/python/code/claude_code_example.py) | [πŸ“–](https://docs.praison.ai/docs/code/claude-code) |
499  | Gemini CLI | [Example](examples/python/code/gemini_cli_example.py) | [πŸ“–](https://docs.praison.ai/docs/code/gemini-cli) |
500  | Codex CLI | [Example](examples/python/code/codex_cli_example.py) | [πŸ“–](https://docs.praison.ai/docs/code/codex-cli) |
501  | Cursor CLI | [Example](examples/python/code/cursor_cli_example.py) | [πŸ“–](https://docs.praison.ai/docs/code/cursor-cli) |
502  
503  </details>
504  
505  <details>
506  <summary><strong>🧠 Memory & Knowledge</strong></summary>
507  
508  | Feature | Code | Docs |
509  |---------|:----:|:----:|
510  | Memory (Short & Long Term) | [Example](examples/python/general/memory_example.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/memory) |
511  | File-Based Memory | [Example](examples/python/general/memory_example.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/memory) |
512  | Claude Memory Tool | [Example](examples/python/memory/claude_memory_example.py) | [πŸ“–](https://docs.praison.ai/docs/features/claude-memory-tool) |
513  | Add Custom Knowledge | [Example](examples/python/concepts/knowledge-agents.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/knowledge) |
514  | RAG Agents | [Example](examples/python/concepts/rag-agents.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/rag) |
515  | Chat with PDF Agents | [Example](examples/python/concepts/chat-with-pdf.py) | [πŸ“–](https://docs.praison.ai/docs/features/chat-with-pdf) |
516  | Data Readers (PDF, DOCX, etc.) | [CLI](https://docs.praison.ai/docs/cli/knowledge) | [πŸ“–](https://docs.praison.ai/docs/features/chunking-strategies) |
517  | Vector Store Selection | [CLI](https://docs.praison.ai/docs/cli/knowledge) | [πŸ“–](https://docs.praison.ai/docs/features/knowledge-backends) |
518  | Retrieval Strategies | [CLI](https://docs.praison.ai/docs/cli/knowledge) | [πŸ“–](https://docs.praison.ai/docs/features/retrieval-strategies) |
519  | Rerankers | [CLI](https://docs.praison.ai/docs/cli/knowledge) | [πŸ“–](https://docs.praison.ai/docs/features/smart-retrieval) |
520  | Index Types (Vector/Keyword/Hybrid) | [CLI](https://docs.praison.ai/docs/cli/knowledge) | [πŸ“–](https://docs.praison.ai/docs/features/incremental-indexing) |
521  | Query Engines (Sub-Question, etc.) | [CLI](https://docs.praison.ai/docs/cli/knowledge) | [πŸ“–](https://docs.praison.ai/docs/features/retrieval) |
522  
523  </details>
524  
525  <details>
526  <summary><strong>πŸ”¬ Research & Intelligence</strong></summary>
527  
528  | Feature | Code | Docs |
529  |---------|:----:|:----:|
530  | Deep Research Agents | [Example](examples/python/agents/research-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/deep-research) |
531  | Query Rewriter Agent | [Example](examples/python/agents/query-rewriter-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/query-rewriter) |
532  | Native Web Search | [Example](examples/python/agents/websearch-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/websearch) |
533  | Built-in Search Tools | [Example](examples/python/agents/websearch-agent.py) | [πŸ“–](https://docs.praison.ai/docs/tools/tavily) |
534  | Unified Web Search | [Example](src/praisonai-agents/examples/web_search_example.py) | [πŸ“–](https://docs.praison.ai/docs/tools/web-search) |
535  | Web Fetch (Anthropic) | [Example](examples/python/agents/web-fetch-agent.py) | [πŸ“–](https://docs.praison.ai/docs/features/model-capabilities) |
536  
537  </details>
538  
539  <details>
540  <summary><strong>πŸ“‹ Planning & Execution</strong></summary>
541  
542  | Feature | Code | Docs |
543  |---------|:----:|:----:|
544  | Planning Mode | [Example](examples/python/agents/planning-agent.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/planning) |
545  | Planning Tools | [Example](examples/python/agents/planning-agent.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/planning) |
546  | Planning Reasoning | [Example](examples/python/agents/planning-agent.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/planning) |
547  | Prompt Chaining | [Example](examples/python/general/prompt_chaining.py) | [πŸ“–](https://docs.praison.ai/docs/features/promptchaining) |
548  | Evaluator Optimiser | [Example](examples/python/general/evaluator-optimiser.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/evaluation) |
549  | Orchestrator Workers | [Example](examples/python/general/orchestrator-workers.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/orchestration) |
550  
551  </details>
552  
553  <details>
554  <summary><strong>πŸ‘₯ Specialized Agents</strong></summary>
555  
556  | Feature | Code | Docs |
557  |---------|:----:|:----:|
558  | Data Analyst Agent | [Example](examples/python/agents/data-analyst-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/data-analyst) |
559  | Finance Agent | [Example](examples/python/agents/finance-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/finance) |
560  | Shopping Agent | [Example](examples/python/agents/shopping-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/shopping) |
561  | Recommendation Agent | [Example](examples/python/agents/recommendation-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/recommendation) |
562  | Wikipedia Agent | [Example](examples/python/agents/wikipedia-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/wikipedia) |
563  | Programming Agent | [Example](examples/python/agents/programming-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/programming) |
564  | Math Agents | [Example](examples/python/agents/math-agent.py) | [πŸ“–](https://docs.praison.ai/docs/features/mathagent) |
565  | Markdown Agent | [Example](examples/python/agents/markdown-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/markdown) |
566  | Prompt Expander Agent | [Example](examples/python/agents/prompt-expander-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/prompt-expander) |
567  
568  </details>
569  
570  <details>
571  <summary><strong>🎨 Media & Multimodal</strong></summary>
572  
573  | Feature | Code | Docs |
574  |---------|:----:|:----:|
575  | Image Generation Agent | [Example](examples/python/image/image-agent.py) | [πŸ“–](https://docs.praison.ai/docs/features/image-generation) |
576  | Image to Text Agent | [Example](examples/python/agents/image-to-text-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/image-to-text) |
577  | Video Agent | [Example](examples/python/agents/video-agent.py) | [πŸ“–](https://docs.praison.ai/docs/agents/video) |
578  | Camera Integration | [Example](examples/python/camera/) | [πŸ“–](https://docs.praison.ai/docs/features/camera-integration) |
579  
580  </details>
581  
582  <details>
583  <summary><strong>πŸ”Œ Protocols & Integration</strong></summary>
584  
585  | Feature | Code | Docs |
586  |---------|:----:|:----:|
587  | MCP Transports | [Example](examples/python/mcp/mcp-transports-overview.py) | [πŸ“–](https://docs.praison.ai/docs/mcp/transports) |
588  | WebSocket MCP | [Example](examples/python/mcp/websocket-mcp.py) | [πŸ“–](https://docs.praison.ai/docs/mcp/sse-transport) |
589  | MCP Security | [Example](examples/python/mcp/mcp-security.py) | [πŸ“–](https://docs.praison.ai/docs/mcp/transports) |
590  | MCP Resumability | [Example](examples/python/mcp/mcp-resumability.py) | [πŸ“–](https://docs.praison.ai/docs/mcp/sse-transport) |
591  | MCP Config Management | [Docs](https://docs.praison.ai/docs/cli/mcp) | [πŸ“–](https://docs.praison.ai/docs/cli/mcp) |
592  | LangChain Integrated Agents | [Example](examples/python/general/langchain_example.py) | [πŸ“–](https://docs.praison.ai/docs/features/langchain) |
593  
594  </details>
595  
596  <details>
597  <summary><strong>πŸ›‘οΈ Safety & Control</strong></summary>
598  
599  | Feature | Code | Docs |
600  |---------|:----:|:----:|
601  | Guardrails | [Example](examples/python/guardrails/comprehensive-guardrails-example.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/guardrails) |
602  | Human Approval | [Example](examples/python/general/human_approval_example.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/approval) |
603  | Rules & Instructions | [Docs](https://docs.praison.ai/docs/features/rules) | [πŸ“–](https://docs.praison.ai/docs/features/rules) |
604  
605  </details>
606  
607  <details>
608  <summary><strong>βš™οΈ Advanced Features</strong></summary>
609  
610  | Feature | Code | Docs |
611  |---------|:----:|:----:|
612  | Async & Parallel Processing | [Example](examples/python/general/async_example.py) | [πŸ“–](https://docs.praison.ai/docs/features/async) |
613  | Parallelisation | [Example](examples/python/general/parallelisation.py) | [πŸ“–](https://docs.praison.ai/docs/features/parallelisation) |
614  | Repetitive Agents | [Example](examples/python/concepts/repetitive-agents.py) | [πŸ“–](https://docs.praison.ai/docs/features/repetitive) |
615  | Agent Handoffs | [Example](examples/python/handoff/handoff_basic.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/handoffs) |
616  | Stateful Agents | [Example](examples/python/stateful/workflow-state-example.py) | [πŸ“–](https://docs.praison.ai/docs/features/stateful-agents) |
617  | Autonomous Workflow | [Example](examples/python/general/autonomous-agent.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/autonomy) |
618  | Structured Output Agents | [Example](examples/python/general/structured_agents_example.py) | [πŸ“–](https://docs.praison.ai/docs/features/structured) |
619  | Model Router | [Example](examples/python/agents/router-agent-cost-optimization.py) | [πŸ“–](https://docs.praison.ai/docs/features/model-router) |
620  | Prompt Caching | [Example](examples/python/agents/prompt-caching-agent.py) | [πŸ“–](https://docs.praison.ai/docs/features/model-capabilities) |
621  | Fast Context | [Example](examples/context/00_agent_fast_context_basic.py) | [πŸ“–](https://docs.praison.ai/docs/features/fast-context) |
622  
623  </details>
624  
625  <details>
626  <summary><strong>πŸ› οΈ Tools & Configuration</strong></summary>
627  
628  | Feature | Code | Docs |
629  |---------|:----:|:----:|
630  | 100+ Custom Tools | [Example](examples/python/general/tools_example.py) | [πŸ“–](https://docs.praison.ai/docs/tools/tools) |
631  | YAML Configuration | [Example](examples/cookbooks/yaml/secondary_market_research_agents.yaml) | [πŸ“–](https://docs.praison.ai/docs/developers/agents-playbook) |
632  | 100+ LLM Support | [Example](examples/python/providers/openai/openai_gpt4_example.py) | [πŸ“–](https://docs.praison.ai/docs/models) |
633  | Callback Agents | [Example](examples/python/general/advanced-callback-systems.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/hooks) |
634  | Hooks | [Example](examples/python/hooks/hooks_example.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/hooks) |
635  | Middleware System | [Example](examples/middleware/basic_middleware.py) | [πŸ“–](https://docs.praison.ai/docs/features/middleware) |
636  | Configurable Model | [Example](examples/middleware/configurable_model.py) | [πŸ“–](https://docs.praison.ai/docs/features/configurable-model) |
637  | Rate Limiter | [Example](examples/middleware/rate_limiter.py) | [πŸ“–](https://docs.praison.ai/docs/features/rate-limiter) |
638  | Injected Tool State | [Example](examples/middleware/injected_state.py) | [πŸ“–](https://docs.praison.ai/docs/features/injected-state) |
639  | Shadow Git Checkpoints | [Example](examples/checkpoints/basic_checkpoint.py) | [πŸ“–](https://docs.praison.ai/docs/features/checkpoints) |
640  | Background Tasks | [Example](examples/background/basic_background.py) | [πŸ“–](https://docs.praison.ai/docs/features/background-tasks) |
641  | Policy Engine | [Example](examples/policy/basic_policy.py) | [πŸ“–](https://docs.praison.ai/docs/features/policy-engine) |
642  | Thinking Budgets | [Example](examples/thinking/basic_thinking.py) | [πŸ“–](https://docs.praison.ai/docs/features/thinking-budgets) |
643  | Output Styles | [Example](examples/output/basic_output.py) | [πŸ“–](https://docs.praison.ai/docs/features/output-styles) |
644  | Context Compaction | [Example](examples/compaction/basic_compaction.py) | [πŸ“–](https://docs.praison.ai/docs/features/context-compaction) |
645  
646  </details>
647  
648  <details>
649  <summary><strong>πŸ“Š Monitoring & Management</strong></summary>
650  
651  | Feature | Code | Docs |
652  |---------|:----:|:----:|
653  | Sessions Management | [Example](examples/python/sessions/comprehensive-session-management.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/session-management) |
654  | Auto-Save Sessions | [Docs](https://docs.praison.ai/docs/cli/session) | [πŸ“–](https://docs.praison.ai/docs/cli/session) |
655  | History in Context | [Docs](https://docs.praison.ai/docs/cli/session) | [πŸ“–](https://docs.praison.ai/docs/cli/session) |
656  | Telemetry | [Example](examples/python/telemetry/production-telemetry-example.py) | [πŸ“–](https://docs.praison.ai/docs/features/telemetry) |
657  | Langfuse Tracing | [Docs](https://docs.praison.ai/docs/observability/langfuse) | [πŸ“–](https://docs.praison.ai/docs/observability/langfuse) |
658  | Project Docs (.praison/docs/) | [Docs](https://docs.praison.ai/docs/cli/docs) | [πŸ“–](https://docs.praison.ai/docs/cli/docs) |
659  | AI Commit Messages | [Docs](https://docs.praison.ai/docs/cli/commit) | [πŸ“–](https://docs.praison.ai/docs/cli/commit) |
660  | @Mentions in Prompts | [Docs](https://docs.praison.ai/docs/cli/mentions) | [πŸ“–](https://docs.praison.ai/docs/cli/mentions) |
661  
662  </details>
663  
664  <details>
665  <summary><strong>πŸ–₯️ CLI Features</strong></summary>
666  
667  | Feature | Code | Docs |
668  |---------|:----:|:----:|
669  | Slash Commands | [Example](examples/python/cli/slash_commands_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/slash-commands) |
670  | Autonomy Modes | [Example](examples/python/cli/autonomy_modes_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/autonomy-modes) |
671  | Cost Tracking | [Example](examples/python/cli/cost_tracking_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/cost-tracking) |
672  | Repository Map | [Example](examples/python/cli/repo_map_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/repo-map) |
673  | Interactive TUI | [Example](examples/python/cli/interactive_tui_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/interactive-tui) |
674  | Git Integration | [Example](examples/python/cli/git_integration_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/git-integration) |
675  | Sandbox Execution | [Example](examples/python/cli/sandbox_execution_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/sandbox-execution) |
676  | CLI Compare | [Example](examples/compare/cli_compare_basic.py) | [πŸ“–](https://docs.praison.ai/docs/cli/compare) |
677  | Profile/Benchmark | [Docs](https://docs.praison.ai/docs/cli/profile) | [πŸ“–](https://docs.praison.ai/docs/cli/profile) |
678  | Auto Mode | [Docs](https://docs.praison.ai/docs/cli/auto) | [πŸ“–](https://docs.praison.ai/docs/cli/auto) |
679  | Init | [Docs](https://docs.praison.ai/docs/cli/init) | [πŸ“–](https://docs.praison.ai/docs/cli/init) |
680  | File Input | [Docs](https://docs.praison.ai/docs/cli/file-input) | [πŸ“–](https://docs.praison.ai/docs/cli/file-input) |
681  | Final Agent | [Docs](https://docs.praison.ai/docs/cli/final-agent) | [πŸ“–](https://docs.praison.ai/docs/cli/final-agent) |
682  | Max Tokens | [Docs](https://docs.praison.ai/docs/cli/max-tokens) | [πŸ“–](https://docs.praison.ai/docs/cli/max-tokens) |
683  
684  </details>
685  
686  <details>
687  <summary><strong>πŸ§ͺ Evaluation</strong></summary>
688  
689  | Feature | Code | Docs |
690  |---------|:----:|:----:|
691  | Accuracy Evaluation | [Example](examples/eval/accuracy_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/eval) |
692  | Performance Evaluation | [Example](examples/eval/performance_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/eval) |
693  | Reliability Evaluation | [Example](examples/eval/reliability_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/eval) |
694  | Criteria Evaluation | [Example](examples/eval/criteria_example.py) | [πŸ“–](https://docs.praison.ai/docs/cli/eval) |
695  
696  </details>
697  
698  <details>
699  <summary><strong>🎯 Agent Skills</strong></summary>
700  
701  | Feature | Code | Docs |
702  |---------|:----:|:----:|
703  | Skills Management | [Example](examples/skills/basic_skill_usage.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/skills) |
704  | Custom Skills | [Example](examples/skills/custom_skill_example.py) | [πŸ“–](https://docs.praison.ai/docs/concepts/skills) |
705  
706  </details>
707  
708  <details>
709  <summary><strong>⏰ 24/7 Scheduling</strong></summary>
710  
711  | Feature | Code | Docs |
712  |---------|:----:|:----:|
713  | Agent Scheduler | [Example](examples/python/scheduled_agents/news_checker_live.py) | [πŸ“–](https://docs.praison.ai/docs/cli/scheduler) |
714  
715  </details>
716  
717  ---
718  
719  ## πŸ’» Using JavaScript Code
720  
721  ```bash
722  npm install praisonai
723  export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
724  ```
725  
726  ```javascript
727  const { Agent } = require('praisonai');
728  const agent = new Agent({ instructions: 'You are a helpful AI assistant' });
729  agent.start('Write a movie script about a robot in Mars');
730  ```
731  
732  ---
733  
734  ## ⚑ Performance
735  
736  PraisonAI 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.
737  
738  | Performance Metric | PraisonAI |
739  |--------------------|-----------|
740  | Avg Instantiation Time | **3.77 ΞΌs** |
741  
742  ---
743  
744  
745  
746  ---
747  
748  ## ⭐ Star History
749  
750  [![Star History Chart](https://api.star-history.com/svg?repos=MervinPraison/PraisonAI&type=Date)](https://docs.praison.ai)
751  
752  ---
753  
754  ## πŸ” Langfuse Tracing
755  
756  ```bash
757  pip install "praisonai[langfuse]"
758  praisonai langfuse
759  ```
760  
761  <p align="center">
762    <img src=".github/images/langfuse.png" alt="PraisonAI Langfuse Tracing" width="800" />
763  </p>
764  
765  ---
766  
767  ## πŸŽ“ Video Tutorials
768  
769  Learn PraisonAI through our comprehensive video series:
770  
771  <details>
772  <summary><strong>View all 22 video tutorials</strong></summary>
773  
774  | Topic | Video |
775  |-------|--------|
776  | AI Agents with Self Reflection | [![Self Reflection](https://img.youtube.com/vi/vLXobEN2Vc8/0.jpg)](https://www.youtube.com/watch?v=vLXobEN2Vc8) |
777  | Reasoning Data Generating Agent | [![Reasoning Data](https://img.youtube.com/vi/fUT332Y2zA8/0.jpg)](https://www.youtube.com/watch?v=fUT332Y2zA8) |
778  | AI Agents with Reasoning | [![Reasoning](https://img.youtube.com/vi/KNDVWGN3TpM/0.jpg)](https://www.youtube.com/watch?v=KNDVWGN3TpM) |
779  | Multimodal AI Agents | [![Multimodal](https://img.youtube.com/vi/hjAWmUT1qqY/0.jpg)](https://www.youtube.com/watch?v=hjAWmUT1qqY) |
780  | AI Agents Workflow | [![Workflow](https://img.youtube.com/vi/yWTH44QPl2A/0.jpg)](https://www.youtube.com/watch?v=yWTH44QPl2A) |
781  | Async AI Agents | [![Async](https://img.youtube.com/vi/VhVQfgo00LE/0.jpg)](https://www.youtube.com/watch?v=VhVQfgo00LE) |
782  | Mini AI Agents | [![Mini](https://img.youtube.com/vi/OkvYp5aAGSg/0.jpg)](https://www.youtube.com/watch?v=OkvYp5aAGSg) |
783  | AI Agents with Memory | [![Memory](https://img.youtube.com/vi/1hVfVxvPnnQ/0.jpg)](https://www.youtube.com/watch?v=1hVfVxvPnnQ) |
784  | Repetitive Agents | [![Repetitive](https://img.youtube.com/vi/dAYGxsjDOPg/0.jpg)](https://www.youtube.com/watch?v=dAYGxsjDOPg) |
785  | Introduction | [![Introduction](https://img.youtube.com/vi/Fn1lQjC0GO0/0.jpg)](https://www.youtube.com/watch?v=Fn1lQjC0GO0) |
786  | Tools Overview | [![Tools Overview](https://img.youtube.com/vi/XaQRgRpV7jo/0.jpg)](https://www.youtube.com/watch?v=XaQRgRpV7jo) |
787  | Custom Tools | [![Custom Tools](https://img.youtube.com/vi/JSU2Rndh06c/0.jpg)](https://www.youtube.com/watch?v=JSU2Rndh06c) |
788  | Firecrawl Integration | [![Firecrawl](https://img.youtube.com/vi/UoqUDcLcOYo/0.jpg)](https://www.youtube.com/watch?v=UoqUDcLcOYo) |
789  | User Interface | [![UI](https://img.youtube.com/vi/tg-ZjNl3OCg/0.jpg)](https://www.youtube.com/watch?v=tg-ZjNl3OCg) |
790  | Crawl4AI Integration | [![Crawl4AI](https://img.youtube.com/vi/KAvuVUh0XU8/0.jpg)](https://www.youtube.com/watch?v=KAvuVUh0XU8) |
791  | Chat Interface | [![Chat](https://img.youtube.com/vi/sw3uDqn2h1Y/0.jpg)](https://www.youtube.com/watch?v=sw3uDqn2h1Y) |
792  | Code Interface | [![Code](https://img.youtube.com/vi/_5jQayO-MQY/0.jpg)](https://www.youtube.com/watch?v=_5jQayO-MQY) |
793  | Mem0 Integration | [![Mem0](https://img.youtube.com/vi/KIGSgRxf1cY/0.jpg)](https://www.youtube.com/watch?v=KIGSgRxf1cY) |
794  | Training | [![Training](https://img.youtube.com/vi/aLawE8kwCrI/0.jpg)](https://www.youtube.com/watch?v=aLawE8kwCrI) |
795  | Realtime Voice Interface | [![Realtime](https://img.youtube.com/vi/frRHfevTCSw/0.jpg)](https://www.youtube.com/watch?v=frRHfevTCSw) |
796  | Call Interface | [![Call](https://img.youtube.com/vi/m1cwrUG2iAk/0.jpg)](https://www.youtube.com/watch?v=m1cwrUG2iAk) |
797  | Reasoning Extract Agents | [![Reasoning Extract](https://img.youtube.com/vi/2PPamsADjJA/0.jpg)](https://www.youtube.com/watch?v=2PPamsADjJA) |
798  
799  </details>
800  
801  ---
802  
803  ## πŸ‘₯ Contributing
804  
805  We welcome contributions! Fork the repo, create a branch, and submit a PR β†’ [Contributing Guide](https://github.com/MervinPraison/PraisonAI/blob/main/CONTRIBUTING.md).
806  
807  ---
808  
809  ## ❓ FAQ & Troubleshooting
810  
811  <details>
812  <summary><strong>ModuleNotFoundError: No module named 'praisonaiagents'</strong></summary>
813  
814  Install the package:
815  ```bash
816  pip install praisonaiagents
817  ```
818  
819  </details>
820  
821  <details>
822  <summary><strong>API key not found / Authentication error</strong></summary>
823  
824  Ensure your API key is set:
825  ```bash
826  export OPENAI_API_KEY=your_key_here
827  ```
828  
829  For other providers, see [Models docs](https://docs.praison.ai/docs/models).
830  
831  </details>
832  
833  <details>
834  <summary><strong>How do I use a local model (Ollama)?</strong></summary>
835  
836  ```bash
837  # Start Ollama server first
838  ollama serve
839  
840  # Set environment variable
841  export OPENAI_BASE_URL=http://localhost:11434/v1
842  ```
843  
844  See [Models docs](https://docs.praison.ai/docs/models) for more details.
845  
846  </details>
847  
848  <details>
849  <summary><strong>How do I persist conversations to a database?</strong></summary>
850  
851  Use the `db` parameter:
852  ```python
853  from praisonaiagents import Agent, db
854  
855  agent = Agent(
856      name="Assistant",
857      db=db(database_url="postgresql://localhost/mydb"),
858      session_id="my-session"
859  )
860  ```
861  
862  See [Persistence docs](https://docs.praison.ai/docs/databases/overview) for supported databases.
863  
864  </details>
865  
866  <details>
867  <summary><strong>How do I enable agent memory?</strong></summary>
868  
869  ```python
870  from praisonaiagents import Agent
871  
872  agent = Agent(
873      name="Assistant",
874      memory=True,  # Enables file-based memory (no extra deps!)
875      user_id="user123"
876  )
877  ```
878  
879  See [Memory docs](https://docs.praison.ai/docs/concepts/memory) for more options.
880  
881  </details>
882  
883  <details>
884  <summary><strong>How do I run multiple agents together?</strong></summary>
885  
886  ```python
887  from praisonaiagents import Agent, Agents
888  
889  agent1 = Agent(instructions="Research topics")
890  agent2 = Agent(instructions="Summarize findings")
891  agents = Agents(agents=[agent1, agent2])
892  agents.start()
893  ```
894  
895  See [Agents docs](https://docs.praison.ai/docs/concepts/agents) for more examples.
896  
897  </details>
898  
899  <details>
900  <summary><strong>How do I use MCP tools?</strong></summary>
901  
902  ```python
903  from praisonaiagents import Agent, MCP
904  
905  agent = Agent(
906      tools=MCP("npx @modelcontextprotocol/server-memory")
907  )
908  ```
909  
910  See [MCP docs](https://docs.praison.ai/docs/mcp/transports) for all transport options.
911  
912  </details>
913  
914  ### Getting Help
915  
916  - πŸ“š [Full Documentation](https://docs.praison.ai)
917  - πŸ› [Report Issues](https://github.com/MervinPraison/PraisonAI/issues)
918  - πŸ’¬ [Discussions](https://github.com/MervinPraison/PraisonAI/discussions)
919  
920  ---
921  
922  <div align="center">
923    <p><strong>Made with ❀️ by the PraisonAI Team</strong></p>
924    <p>
925      <a href="https://docs.praison.ai">πŸ“š Documentation</a> β€’
926      <a href="https://github.com/MervinPraison/PraisonAI">GitHub</a> β€’
927      <a href="https://youtube.com/@MervinPraison">▢️ YouTube</a> β€’
928      <a href="https://x.com/MervinPraison">𝕏 X</a> β€’
929      <a href="https://linkedin.com/in/mervinpraison">πŸ’Ό LinkedIn</a>
930    </p>
931  </div>