PraisonAI 2.2.98__tar.gz → 2.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. praisonai-2.3.2/PKG-INFO +989 -0
  2. praisonai-2.3.2/PraisonAI.egg-info/PKG-INFO +989 -0
  3. {praisonai-2.2.98 → praisonai-2.3.2}/PraisonAI.egg-info/requires.txt +1 -1
  4. praisonai-2.3.2/README.md +892 -0
  5. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/cli.py +142 -0
  6. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/deploy.py +1 -1
  7. praisonai-2.3.2/praisonai/version.py +1 -0
  8. {praisonai-2.2.98 → praisonai-2.3.2}/pyproject.toml +1 -1
  9. {praisonai-2.2.98 → praisonai-2.3.2}/tests/test.py +5 -2
  10. praisonai-2.2.98/PKG-INFO +0 -131
  11. praisonai-2.2.98/PraisonAI.egg-info/PKG-INFO +0 -131
  12. praisonai-2.2.98/README.md +0 -34
  13. praisonai-2.2.98/praisonai/version.py +0 -1
  14. {praisonai-2.2.98 → praisonai-2.3.2}/PraisonAI.egg-info/SOURCES.txt +0 -0
  15. {praisonai-2.2.98 → praisonai-2.3.2}/PraisonAI.egg-info/dependency_links.txt +0 -0
  16. {praisonai-2.2.98 → praisonai-2.3.2}/PraisonAI.egg-info/entry_points.txt +0 -0
  17. {praisonai-2.2.98 → praisonai-2.3.2}/PraisonAI.egg-info/top_level.txt +0 -0
  18. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/__init__.py +0 -0
  19. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/__main__.py +0 -0
  20. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/agents_generator.py +0 -0
  21. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/api/call.py +0 -0
  22. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/auto.py +0 -0
  23. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/chainlit_ui.py +0 -0
  24. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/inbuilt_tools/__init__.py +0 -0
  25. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  26. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/inc/__init__.py +0 -0
  27. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/inc/config.py +0 -0
  28. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/inc/models.py +0 -0
  29. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/scheduler.py +0 -0
  30. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/setup/__init__.py +0 -0
  31. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/setup/build.py +0 -0
  32. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/setup/post_install.py +0 -0
  33. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/setup/setup_conda_env.py +0 -0
  34. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/setup.py +0 -0
  35. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/test.py +0 -0
  36. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/train.py +0 -0
  37. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/train_vision.py +0 -0
  38. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/agents.py +0 -0
  39. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/callbacks.py +0 -0
  40. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/chat.py +0 -0
  41. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/code.py +0 -0
  42. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/colab.py +0 -0
  43. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/colab_chainlit.py +0 -0
  44. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/components/aicoder.py +0 -0
  45. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/context.py +0 -0
  46. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/database_config.py +0 -0
  47. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/db.py +0 -0
  48. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/realtime.py +0 -0
  49. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/realtimeclient/__init__.py +0 -0
  50. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/realtimeclient/tools.py +0 -0
  51. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/ui/sql_alchemy.py +0 -0
  52. {praisonai-2.2.98 → praisonai-2.3.2}/praisonai/upload_vision.py +0 -0
  53. {praisonai-2.2.98 → praisonai-2.3.2}/setup.cfg +0 -0
  54. {praisonai-2.2.98 → praisonai-2.3.2}/tests/test_agents_playbook.py +0 -0
  55. {praisonai-2.2.98 → praisonai-2.3.2}/tests/test_basic.py +0 -0
  56. {praisonai-2.2.98 → praisonai-2.3.2}/tests/test_custom_tools_fix.py +0 -0
  57. {praisonai-2.2.98 → praisonai-2.3.2}/tests/test_double_api_fix.py +0 -0
  58. {praisonai-2.2.98 → praisonai-2.3.2}/tests/test_phase2_refactor.py +0 -0
  59. {praisonai-2.2.98 → praisonai-2.3.2}/tests/test_runner.py +0 -0
@@ -0,0 +1,989 @@
1
+ Metadata-Version: 2.4
2
+ Name: PraisonAI
3
+ Version: 2.3.2
4
+ Summary: PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration.
5
+ Author: Mervin Praison
6
+ License: MIT
7
+ Project-URL: Homepage, https://docs.praison.ai
8
+ Project-URL: Repository, https://github.com/mervinpraison/PraisonAI
9
+ Requires-Python: >=3.10
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: rich>=13.7
12
+ Requires-Dist: markdown>=3.5
13
+ Requires-Dist: pyparsing>=3.0.0
14
+ Requires-Dist: praisonaiagents>=0.0.175
15
+ Requires-Dist: python-dotenv>=0.19.0
16
+ Requires-Dist: instructor>=1.3.3
17
+ Requires-Dist: PyYAML>=6.0
18
+ Requires-Dist: mcp>=1.6.0
19
+ Provides-Extra: ui
20
+ Requires-Dist: chainlit==2.5.5; extra == "ui"
21
+ Requires-Dist: sqlalchemy>=2.0.36; extra == "ui"
22
+ Requires-Dist: aiosqlite>=0.20.0; extra == "ui"
23
+ Requires-Dist: greenlet>=3.0.3; extra == "ui"
24
+ Requires-Dist: pydantic<=2.10.1; extra == "ui"
25
+ Provides-Extra: gradio
26
+ Requires-Dist: gradio>=4.26.0; extra == "gradio"
27
+ Provides-Extra: api
28
+ Requires-Dist: flask>=3.0.0; extra == "api"
29
+ Requires-Dist: fastapi>=0.115.0; extra == "api"
30
+ Requires-Dist: uvicorn>=0.34.0; extra == "api"
31
+ Provides-Extra: agentops
32
+ Requires-Dist: agentops>=0.3.12; extra == "agentops"
33
+ Provides-Extra: google
34
+ Requires-Dist: langchain-google-genai>=2.1.0; extra == "google"
35
+ Provides-Extra: openai
36
+ Requires-Dist: langchain-openai<0.3.0,>=0.2.1; extra == "openai"
37
+ Provides-Extra: anthropic
38
+ Requires-Dist: langchain-anthropic>=0.3.0; extra == "anthropic"
39
+ Provides-Extra: cohere
40
+ Requires-Dist: langchain-cohere<0.4.0,>=0.3.0; extra == "cohere"
41
+ Provides-Extra: chat
42
+ Requires-Dist: chainlit==2.5.5; extra == "chat"
43
+ Requires-Dist: litellm>=1.72.6; extra == "chat"
44
+ Requires-Dist: aiosqlite>=0.20.0; extra == "chat"
45
+ Requires-Dist: greenlet>=3.0.3; extra == "chat"
46
+ Requires-Dist: tavily-python==0.5.0; extra == "chat"
47
+ Requires-Dist: crawl4ai>=0.7.0; extra == "chat"
48
+ Requires-Dist: sqlalchemy>=2.0.36; extra == "chat"
49
+ Requires-Dist: playwright>=1.47.0; extra == "chat"
50
+ Requires-Dist: rich; extra == "chat"
51
+ Requires-Dist: pydantic<=2.10.1; extra == "chat"
52
+ Provides-Extra: code
53
+ Requires-Dist: chainlit==2.5.5; extra == "code"
54
+ Requires-Dist: litellm>=1.72.6; extra == "code"
55
+ Requires-Dist: aiosqlite>=0.20.0; extra == "code"
56
+ Requires-Dist: greenlet>=3.0.3; extra == "code"
57
+ Requires-Dist: tavily-python==0.5.0; extra == "code"
58
+ Requires-Dist: crawl4ai>=0.7.0; extra == "code"
59
+ Requires-Dist: sqlalchemy>=2.0.36; extra == "code"
60
+ Requires-Dist: playwright>=1.47.0; extra == "code"
61
+ Requires-Dist: pydantic<=2.10.1; extra == "code"
62
+ Provides-Extra: realtime
63
+ Requires-Dist: chainlit==2.5.5; extra == "realtime"
64
+ Requires-Dist: litellm>=1.72.6; extra == "realtime"
65
+ Requires-Dist: aiosqlite>=0.20.0; extra == "realtime"
66
+ Requires-Dist: greenlet>=3.0.3; extra == "realtime"
67
+ Requires-Dist: tavily-python==0.5.0; extra == "realtime"
68
+ Requires-Dist: crawl4ai>=0.7.0; extra == "realtime"
69
+ Requires-Dist: websockets>=12.0; extra == "realtime"
70
+ Requires-Dist: plotly>=5.24.0; extra == "realtime"
71
+ Requires-Dist: yfinance>=0.2.44; extra == "realtime"
72
+ Requires-Dist: duckduckgo_search>=6.3.0; extra == "realtime"
73
+ Requires-Dist: sqlalchemy>=2.0.36; extra == "realtime"
74
+ Provides-Extra: call
75
+ Requires-Dist: twilio>=7.0.0; extra == "call"
76
+ Requires-Dist: fastapi>=0.95.0; extra == "call"
77
+ Requires-Dist: uvicorn>=0.20.0; extra == "call"
78
+ Requires-Dist: websockets>=12.0; extra == "call"
79
+ Requires-Dist: flaml[automl]>=2.3.1; extra == "call"
80
+ Requires-Dist: pyngrok>=1.4.0; extra == "call"
81
+ Requires-Dist: rich; extra == "call"
82
+ Requires-Dist: openai>=1.54.0; extra == "call"
83
+ Provides-Extra: train
84
+ Provides-Extra: crewai
85
+ Requires-Dist: crewai>=0.157.0; extra == "crewai"
86
+ Requires-Dist: praisonai-tools>=0.0.22; extra == "crewai"
87
+ Provides-Extra: autogen
88
+ Requires-Dist: pyautogen==0.2.29; extra == "autogen"
89
+ Requires-Dist: praisonai-tools>=0.0.22; extra == "autogen"
90
+ Requires-Dist: crewai; extra == "autogen"
91
+ Provides-Extra: autogen-v4
92
+ Requires-Dist: autogen-agentchat>=0.4.0; extra == "autogen-v4"
93
+ Requires-Dist: autogen-ext[openai]>=0.4.0; extra == "autogen-v4"
94
+ Requires-Dist: autogen-core>=0.4.0; extra == "autogen-v4"
95
+ Requires-Dist: praisonai-tools>=0.0.22; extra == "autogen-v4"
96
+ Requires-Dist: crewai; extra == "autogen-v4"
97
+
98
+ <p align="center">
99
+ <picture>
100
+ <source media="(prefers-color-scheme: dark)" srcset="docs/logo/dark.png" />
101
+ <source media="(prefers-color-scheme: light)" srcset="docs/logo/light.png" />
102
+ <img alt="PraisonAI Logo" src="docs/logo/light.png" />
103
+ </picture>
104
+ </p>
105
+
106
+ <p align="center">
107
+ <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://static.pepy.tech/badge/PraisonAI" alt="Total Downloads" /></a>
108
+ <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/github/v/release/MervinPraison/PraisonAI" alt="Latest Stable Version" /></a>
109
+ <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License" /></a>
110
+ </p>
111
+
112
+ <div align="center">
113
+
114
+ # Praison AI
115
+
116
+ <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>
117
+
118
+ </div>
119
+
120
+ PraisonAI is a production-ready Multi-AI Agents framework with self-reflection, designed to create AI Agents to automate and solve problems ranging from simple tasks to complex challenges. By integrating PraisonAI Agents, AG2 (Formerly AutoGen), and CrewAI into a low-code solution, it streamlines the building and management of multi-agent LLM systems, emphasising simplicity, customisation, and effective human-agent collaboration.
121
+
122
+ <div align="center">
123
+ <a href="https://docs.praison.ai">
124
+ <p align="center">
125
+ <img src="https://img.shields.io/badge/📚_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" />
126
+ </p>
127
+ </a>
128
+ </div>
129
+
130
+ ## Key Features
131
+
132
+ - 🤖 Automated AI Agents Creation
133
+ - 🔄 Self Reflection AI Agents
134
+ - 🧠 Reasoning AI Agents
135
+ - 👁️ Multi Modal AI Agents
136
+ - 🤝 Multi Agent Collaboration
137
+ - 🎭 AI Agent Workflow
138
+ - 📚 Add Custom Knowledge
139
+ - 🧠 Agents with Short and Long Term Memory
140
+ - 📄 Chat with PDF Agents
141
+ - 💻 Code Interpreter Agents
142
+ - 📚 RAG Agents
143
+ - 🤔 Async & Parallel Processing
144
+ - 🔄 Auto Agents
145
+ - 🔢 Math Agents
146
+ - 🎯 Structured Output Agents
147
+ - 🔗 LangChain Integrated Agents
148
+ - 📞 Callback Agents
149
+ - 🤏 Mini AI Agents
150
+ - 🛠️ 100+ Custom Tools
151
+ - 📄 YAML Configuration
152
+ - 💯 100+ LLM Support
153
+ - 🔬 **Deep Research Agents** (OpenAI & Gemini)
154
+ - 🔄 **Query Rewriter Agent** (HyDE, Step-back, Multi-query)
155
+ - 🌐 **Native Web Search** (OpenAI, Gemini, Anthropic, xAI, Perplexity)
156
+ - 📥 **Web Fetch** (Retrieve full content from URLs - Anthropic)
157
+ - 💾 **Prompt Caching** (Reduce costs & latency - OpenAI, Anthropic, Bedrock, Deepseek)
158
+
159
+ ## Using Python Code
160
+
161
+ Light weight package dedicated for coding:
162
+ ```bash
163
+ pip install praisonaiagents
164
+ ```
165
+
166
+ ```bash
167
+ export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
168
+ ```
169
+
170
+ ### 1. Single Agent
171
+
172
+ Create app.py file and add the code below:
173
+ ```python
174
+ from praisonaiagents import Agent
175
+ agent = Agent(instructions="Your are a helpful AI assistant")
176
+ agent.start("Write a movie script about a robot in Mars")
177
+ ```
178
+
179
+ Run:
180
+ ```bash
181
+ python app.py
182
+ ```
183
+
184
+ ### 2. Multi Agents
185
+
186
+ Create app.py file and add the code below:
187
+ ```python
188
+ from praisonaiagents import Agent, PraisonAIAgents
189
+
190
+ research_agent = Agent(instructions="Research about AI")
191
+ summarise_agent = Agent(instructions="Summarise research agent's findings")
192
+ agents = PraisonAIAgents(agents=[research_agent, summarise_agent])
193
+ agents.start()
194
+ ```
195
+
196
+ Run:
197
+ ```bash
198
+ python app.py
199
+ ```
200
+
201
+ ### 3. Deep Research Agent
202
+
203
+ Automated research with real-time streaming, web search, and citations using OpenAI or Gemini Deep Research APIs.
204
+
205
+ ```python
206
+ from praisonaiagents import DeepResearchAgent
207
+
208
+ # OpenAI Deep Research
209
+ agent = DeepResearchAgent(
210
+ model="o4-mini-deep-research", # or "o3-deep-research"
211
+ verbose=True
212
+ )
213
+
214
+ result = agent.research("What are the latest AI trends in 2025?")
215
+ print(result.report)
216
+ print(f"Citations: {len(result.citations)}")
217
+ ```
218
+
219
+ ```python
220
+ # Gemini Deep Research
221
+ from praisonaiagents import DeepResearchAgent
222
+
223
+ agent = DeepResearchAgent(
224
+ model="deep-research-pro", # Auto-detected as Gemini
225
+ verbose=True
226
+ )
227
+
228
+ result = agent.research("Research quantum computing advances")
229
+ print(result.report)
230
+ ```
231
+
232
+ **Features:**
233
+ - 🔍 Multi-provider support (OpenAI, Gemini, LiteLLM)
234
+ - 📡 Real-time streaming with reasoning summaries
235
+ - 📚 Structured citations with URLs
236
+ - 🛠️ Built-in tools: web search, code interpreter, MCP, file search
237
+ - 🔄 Automatic provider detection from model name
238
+
239
+ ### 4. Query Rewriter Agent
240
+
241
+ Transform user queries to improve RAG retrieval quality using multiple strategies.
242
+
243
+ ```python
244
+ from praisonaiagents import QueryRewriterAgent, RewriteStrategy
245
+
246
+ agent = QueryRewriterAgent(model="gpt-4o-mini")
247
+
248
+ # Basic - expands abbreviations, adds context
249
+ result = agent.rewrite("AI trends")
250
+ print(result.primary_query) # "What are the current trends in Artificial Intelligence?"
251
+
252
+ # HyDE - generates hypothetical document for semantic matching
253
+ result = agent.rewrite("What is quantum computing?", strategy=RewriteStrategy.HYDE)
254
+
255
+ # Step-back - generates broader context question
256
+ result = agent.rewrite("GPT-4 vs Claude 3?", strategy=RewriteStrategy.STEP_BACK)
257
+
258
+ # Sub-queries - decomposes complex questions
259
+ result = agent.rewrite("RAG setup and best embedding models?", strategy=RewriteStrategy.SUB_QUERIES)
260
+
261
+ # Contextual - resolves references using chat history
262
+ result = agent.rewrite("What about cost?", chat_history=[...])
263
+ ```
264
+
265
+ **Strategies:**
266
+ - **BASIC**: Expand abbreviations, fix typos, add context
267
+ - **HYDE**: Generate hypothetical document for semantic matching
268
+ - **STEP_BACK**: Generate higher-level concept questions
269
+ - **SUB_QUERIES**: Decompose multi-part questions
270
+ - **MULTI_QUERY**: Generate multiple paraphrased versions
271
+ - **CONTEXTUAL**: Resolve references using conversation history
272
+ - **AUTO**: Automatically detect best strategy
273
+
274
+ ## Using No Code
275
+
276
+ ### Auto Mode:
277
+ ```bash
278
+ pip install praisonai
279
+ export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
280
+ praisonai --auto create a movie script about Robots in Mars
281
+ ```
282
+
283
+ ### Query Rewriting (works with any command):
284
+ ```bash
285
+ # Rewrite query for better results (uses QueryRewriterAgent)
286
+ praisonai "AI trends" --query-rewrite
287
+
288
+ # Rewrite with search tools (agent decides when to search)
289
+ praisonai "latest developments" --query-rewrite --rewrite-tools "internet_search"
290
+
291
+ # Works with any prompt
292
+ praisonai "explain quantum computing" --query-rewrite -v
293
+ ```
294
+
295
+ ### Deep Research CLI:
296
+ ```bash
297
+ # Default: OpenAI (o4-mini-deep-research)
298
+ praisonai research "What are the latest AI trends in 2025?"
299
+
300
+ # Use Gemini
301
+ praisonai research --model deep-research-pro "Your research query"
302
+
303
+ # Rewrite query before research
304
+ praisonai research --query-rewrite "AI trends"
305
+
306
+ # Rewrite with search tools
307
+ praisonai research --query-rewrite --rewrite-tools "internet_search" "AI trends"
308
+
309
+ # Use custom tools from file (gathers context before deep research)
310
+ praisonai research --tools tools.py "Your research query"
311
+ praisonai research -t my_tools.py "Your research query"
312
+
313
+ # Use built-in tools by name (comma-separated)
314
+ praisonai research --tools "internet_search,wiki_search" "Your query"
315
+ praisonai research -t "yfinance,calculator_tools" "Stock analysis query"
316
+
317
+ # Save output to file (output/research/{query}.md)
318
+ praisonai research --save "Your research query"
319
+ praisonai research -s "Your research query"
320
+
321
+ # Combine options
322
+ praisonai research --query-rewrite --tools tools.py --save "Your research query"
323
+
324
+ # Verbose mode (show debug logs)
325
+ praisonai research -v "Your research query"
326
+ ```
327
+
328
+ ## Using JavaScript Code
329
+
330
+ ```bash
331
+ npm install praisonai
332
+ export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
333
+ ```
334
+
335
+ ```javascript
336
+ const { Agent } = require('praisonai');
337
+ const agent = new Agent({ instructions: 'You are a helpful AI assistant' });
338
+ agent.start('Write a movie script about a robot in Mars');
339
+ ```
340
+
341
+ ![PraisonAI CLI Demo](docs/demo/praisonai-cli-demo.gif)
342
+
343
+ ## Star History
344
+
345
+ [![Star History Chart](https://api.star-history.com/svg?repos=MervinPraison/PraisonAI&type=Date)](https://docs.praison.ai)
346
+
347
+ ## AI Agents Flow
348
+
349
+ ```mermaid
350
+ graph LR
351
+ %% Define the main flow
352
+ Start([▶ Start]) --> Agent1
353
+ Agent1 --> Process[⚙ Process]
354
+ Process --> Agent2
355
+ Agent2 --> Output([✓ Output])
356
+ Process -.-> Agent1
357
+
358
+ %% Define subgraphs for agents and their tasks
359
+ subgraph Agent1[ ]
360
+ Task1[📋 Task]
361
+ AgentIcon1[🤖 AI Agent]
362
+ Tools1[🔧 Tools]
363
+
364
+ Task1 --- AgentIcon1
365
+ AgentIcon1 --- Tools1
366
+ end
367
+
368
+ subgraph Agent2[ ]
369
+ Task2[📋 Task]
370
+ AgentIcon2[🤖 AI Agent]
371
+ Tools2[🔧 Tools]
372
+
373
+ Task2 --- AgentIcon2
374
+ AgentIcon2 --- Tools2
375
+ end
376
+
377
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
378
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
379
+ classDef tools fill:#2E8B57,stroke:#7C90A0,color:#fff
380
+ classDef transparent fill:none,stroke:none
381
+
382
+ class Start,Output,Task1,Task2 input
383
+ class Process,AgentIcon1,AgentIcon2 process
384
+ class Tools1,Tools2 tools
385
+ class Agent1,Agent2 transparent
386
+ ```
387
+
388
+ ## AI Agents with Tools
389
+
390
+ Create AI agents that can use tools to interact with external systems and perform actions.
391
+
392
+ ```mermaid
393
+ flowchart TB
394
+ subgraph Tools
395
+ direction TB
396
+ T3[Internet Search]
397
+ T1[Code Execution]
398
+ T2[Formatting]
399
+ end
400
+
401
+ Input[Input] ---> Agents
402
+ subgraph Agents
403
+ direction LR
404
+ A1[Agent 1]
405
+ A2[Agent 2]
406
+ A3[Agent 3]
407
+ end
408
+ Agents ---> Output[Output]
409
+
410
+ T3 --> A1
411
+ T1 --> A2
412
+ T2 --> A3
413
+
414
+ style Tools fill:#189AB4,color:#fff
415
+ style Agents fill:#8B0000,color:#fff
416
+ style Input fill:#8B0000,color:#fff
417
+ style Output fill:#8B0000,color:#fff
418
+ ```
419
+
420
+ ## AI Agents with Memory
421
+
422
+ Create AI agents with memory capabilities for maintaining context and information across tasks.
423
+
424
+ ```mermaid
425
+ flowchart TB
426
+ subgraph Memory
427
+ direction TB
428
+ STM[Short Term]
429
+ LTM[Long Term]
430
+ end
431
+
432
+ subgraph Store
433
+ direction TB
434
+ DB[(Vector DB)]
435
+ end
436
+
437
+ Input[Input] ---> Agents
438
+ subgraph Agents
439
+ direction LR
440
+ A1[Agent 1]
441
+ A2[Agent 2]
442
+ A3[Agent 3]
443
+ end
444
+ Agents ---> Output[Output]
445
+
446
+ Memory <--> Store
447
+ Store <--> A1
448
+ Store <--> A2
449
+ Store <--> A3
450
+
451
+ style Memory fill:#189AB4,color:#fff
452
+ style Store fill:#2E8B57,color:#fff
453
+ style Agents fill:#8B0000,color:#fff
454
+ style Input fill:#8B0000,color:#fff
455
+ style Output fill:#8B0000,color:#fff
456
+ ```
457
+
458
+ ## AI Agents with Different Processes
459
+
460
+ ### Sequential Process
461
+
462
+ The simplest form of task execution where tasks are performed one after another.
463
+
464
+ ```mermaid
465
+ graph LR
466
+ Input[Input] --> A1
467
+ subgraph Agents
468
+ direction LR
469
+ A1[Agent 1] --> A2[Agent 2] --> A3[Agent 3]
470
+ end
471
+ A3 --> Output[Output]
472
+
473
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
474
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
475
+ classDef transparent fill:none,stroke:none
476
+
477
+ class Input,Output input
478
+ class A1,A2,A3 process
479
+ class Agents transparent
480
+ ```
481
+
482
+ ### Hierarchical Process
483
+
484
+ Uses a manager agent to coordinate task execution and agent assignments.
485
+
486
+ ```mermaid
487
+ graph TB
488
+ Input[Input] --> Manager
489
+
490
+ subgraph Agents
491
+ Manager[Manager Agent]
492
+
493
+ subgraph Workers
494
+ direction LR
495
+ W1[Worker 1]
496
+ W2[Worker 2]
497
+ W3[Worker 3]
498
+ end
499
+
500
+ Manager --> W1
501
+ Manager --> W2
502
+ Manager --> W3
503
+ end
504
+
505
+ W1 --> Manager
506
+ W2 --> Manager
507
+ W3 --> Manager
508
+ Manager --> Output[Output]
509
+
510
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
511
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
512
+ classDef transparent fill:none,stroke:none
513
+
514
+ class Input,Output input
515
+ class Manager,W1,W2,W3 process
516
+ class Agents,Workers transparent
517
+ ```
518
+
519
+ ### Workflow Process
520
+
521
+ Advanced process type supporting complex task relationships and conditional execution.
522
+
523
+ ```mermaid
524
+ graph LR
525
+ Input[Input] --> Start
526
+
527
+ subgraph Workflow
528
+ direction LR
529
+ Start[Start] --> C1{Condition}
530
+ C1 --> |Yes| A1[Agent 1]
531
+ C1 --> |No| A2[Agent 2]
532
+ A1 --> Join
533
+ A2 --> Join
534
+ Join --> A3[Agent 3]
535
+ end
536
+
537
+ A3 --> Output[Output]
538
+
539
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
540
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
541
+ classDef decision fill:#2E8B57,stroke:#7C90A0,color:#fff
542
+ classDef transparent fill:none,stroke:none
543
+
544
+ class Input,Output input
545
+ class Start,A1,A2,A3,Join process
546
+ class C1 decision
547
+ class Workflow transparent
548
+ ```
549
+
550
+ #### Agentic Routing Workflow
551
+
552
+ Create AI agents that can dynamically route tasks to specialized LLM instances.
553
+
554
+ ```mermaid
555
+ flowchart LR
556
+ In[In] --> Router[LLM Call Router]
557
+ Router --> LLM1[LLM Call 1]
558
+ Router --> LLM2[LLM Call 2]
559
+ Router --> LLM3[LLM Call 3]
560
+ LLM1 --> Out[Out]
561
+ LLM2 --> Out
562
+ LLM3 --> Out
563
+
564
+ style In fill:#8B0000,color:#fff
565
+ style Router fill:#2E8B57,color:#fff
566
+ style LLM1 fill:#2E8B57,color:#fff
567
+ style LLM2 fill:#2E8B57,color:#fff
568
+ style LLM3 fill:#2E8B57,color:#fff
569
+ style Out fill:#8B0000,color:#fff
570
+ ```
571
+
572
+ #### Agentic Orchestrator Worker
573
+
574
+ Create AI agents that orchestrate and distribute tasks among specialized workers.
575
+
576
+ ```mermaid
577
+ flowchart LR
578
+ In[In] --> Router[LLM Call Router]
579
+ Router --> LLM1[LLM Call 1]
580
+ Router --> LLM2[LLM Call 2]
581
+ Router --> LLM3[LLM Call 3]
582
+ LLM1 --> Synthesizer[Synthesizer]
583
+ LLM2 --> Synthesizer
584
+ LLM3 --> Synthesizer
585
+ Synthesizer --> Out[Out]
586
+
587
+ style In fill:#8B0000,color:#fff
588
+ style Router fill:#2E8B57,color:#fff
589
+ style LLM1 fill:#2E8B57,color:#fff
590
+ style LLM2 fill:#2E8B57,color:#fff
591
+ style LLM3 fill:#2E8B57,color:#fff
592
+ style Synthesizer fill:#2E8B57,color:#fff
593
+ style Out fill:#8B0000,color:#fff
594
+ ```
595
+
596
+ #### Agentic Autonomous Workflow
597
+
598
+ Create AI agents that can autonomously monitor, act, and adapt based on environment feedback.
599
+
600
+ ```mermaid
601
+ flowchart LR
602
+ Human[Human] <--> LLM[LLM Call]
603
+ LLM -->|ACTION| Environment[Environment]
604
+ Environment -->|FEEDBACK| LLM
605
+ LLM --> Stop[Stop]
606
+
607
+ style Human fill:#8B0000,color:#fff
608
+ style LLM fill:#2E8B57,color:#fff
609
+ style Environment fill:#8B0000,color:#fff
610
+ style Stop fill:#333,color:#fff
611
+ ```
612
+
613
+ #### Agentic Parallelization
614
+
615
+ Create AI agents that can execute tasks in parallel for improved performance.
616
+
617
+ ```mermaid
618
+ flowchart LR
619
+ In[In] --> LLM2[LLM Call 2]
620
+ In --> LLM1[LLM Call 1]
621
+ In --> LLM3[LLM Call 3]
622
+ LLM1 --> Aggregator[Aggregator]
623
+ LLM2 --> Aggregator
624
+ LLM3 --> Aggregator
625
+ Aggregator --> Out[Out]
626
+
627
+ style In fill:#8B0000,color:#fff
628
+ style LLM1 fill:#2E8B57,color:#fff
629
+ style LLM2 fill:#2E8B57,color:#fff
630
+ style LLM3 fill:#2E8B57,color:#fff
631
+ style Aggregator fill:#fff,color:#000
632
+ style Out fill:#8B0000,color:#fff
633
+ ```
634
+
635
+ #### Agentic Prompt Chaining
636
+
637
+ Create AI agents with sequential prompt chaining for complex workflows.
638
+
639
+ ```mermaid
640
+ flowchart LR
641
+ In[In] --> LLM1[LLM Call 1] --> Gate{Gate}
642
+ Gate -->|Pass| LLM2[LLM Call 2] -->|Output 2| LLM3[LLM Call 3] --> Out[Out]
643
+ Gate -->|Fail| Exit[Exit]
644
+
645
+ style In fill:#8B0000,color:#fff
646
+ style LLM1 fill:#2E8B57,color:#fff
647
+ style LLM2 fill:#2E8B57,color:#fff
648
+ style LLM3 fill:#2E8B57,color:#fff
649
+ style Out fill:#8B0000,color:#fff
650
+ style Exit fill:#8B0000,color:#fff
651
+ ```
652
+
653
+ #### Agentic Evaluator Optimizer
654
+
655
+ Create AI agents that can generate and optimize solutions through iterative feedback.
656
+
657
+ ```mermaid
658
+ flowchart LR
659
+ In[In] --> Generator[LLM Call Generator]
660
+ Generator -->|SOLUTION| Evaluator[LLM Call Evaluator] -->|ACCEPTED| Out[Out]
661
+ Evaluator -->|REJECTED + FEEDBACK| Generator
662
+
663
+ style In fill:#8B0000,color:#fff
664
+ style Generator fill:#2E8B57,color:#fff
665
+ style Evaluator fill:#2E8B57,color:#fff
666
+ style Out fill:#8B0000,color:#fff
667
+ ```
668
+
669
+ #### Repetitive Agents
670
+
671
+ Create AI agents that can efficiently handle repetitive tasks through automated loops.
672
+
673
+ ```mermaid
674
+ flowchart LR
675
+ In[Input] --> LoopAgent[("Looping Agent")]
676
+ LoopAgent --> Task[Task]
677
+ Task --> |Next iteration| LoopAgent
678
+ Task --> |Done| Out[Output]
679
+
680
+ style In fill:#8B0000,color:#fff
681
+ style LoopAgent fill:#2E8B57,color:#fff,shape:circle
682
+ style Task fill:#2E8B57,color:#fff
683
+ style Out fill:#8B0000,color:#fff
684
+ ```
685
+
686
+ ## Adding Models
687
+
688
+ <div align="center">
689
+ <a href="https://docs.praison.ai/models">
690
+ <p align="center">
691
+ <img src="https://img.shields.io/badge/%F0%9F%93%9A_Models-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Models" />
692
+ </p>
693
+ </a>
694
+ </div>
695
+
696
+ ## Ollama Integration
697
+ ```bash
698
+ export OPENAI_BASE_URL=http://localhost:11434/v1
699
+ ```
700
+
701
+ ## Groq Integration
702
+ Replace xxxx with Groq API KEY:
703
+ ```bash
704
+ export OPENAI_API_KEY=xxxxxxxxxxx
705
+ export OPENAI_BASE_URL=https://api.groq.com/openai/v1
706
+ ```
707
+
708
+ ## No Code Options
709
+
710
+ ## Agents Playbook
711
+
712
+ ### Simple Playbook Example
713
+
714
+ Create `agents.yaml` file and add the code below:
715
+
716
+ ```yaml
717
+ framework: praisonai
718
+ topic: Artificial Intelligence
719
+ roles:
720
+ screenwriter:
721
+ backstory: "Skilled in crafting scripts with engaging dialogue about {topic}."
722
+ goal: Create scripts from concepts.
723
+ role: Screenwriter
724
+ tasks:
725
+ scriptwriting_task:
726
+ description: "Develop scripts with compelling characters and dialogue about {topic}."
727
+ expected_output: "Complete script ready for production."
728
+ ```
729
+
730
+ *To run the playbook:*
731
+ ```bash
732
+ praisonai agents.yaml
733
+ ```
734
+
735
+ ## Use 100+ Models
736
+
737
+ - https://docs.praison.ai/models/
738
+ <div align="center">
739
+ <a href="https://docs.praison.ai">
740
+ <p align="center">
741
+ <img src="https://img.shields.io/badge/📚_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" />
742
+ </p>
743
+ </a>
744
+ </div>
745
+
746
+
747
+ ## Custom Tools
748
+
749
+ ### Using `@tool` Decorator
750
+
751
+ ```python
752
+ from praisonaiagents import Agent, tool
753
+
754
+ @tool
755
+ def search(query: str) -> str:
756
+ """Search the web for information."""
757
+ return f"Results for: {query}"
758
+
759
+ @tool
760
+ def calculate(expression: str) -> float:
761
+ """Evaluate a math expression."""
762
+ return eval(expression)
763
+
764
+ agent = Agent(
765
+ instructions="You are a helpful assistant",
766
+ tools=[search, calculate]
767
+ )
768
+ agent.start("Search for AI news and calculate 15*4")
769
+ ```
770
+
771
+ ### Using `BaseTool` Class
772
+
773
+ ```python
774
+ from praisonaiagents import Agent, BaseTool
775
+
776
+ class WeatherTool(BaseTool):
777
+ name = "weather"
778
+ description = "Get current weather for a location"
779
+
780
+ def run(self, location: str) -> str:
781
+ return f"Weather in {location}: 72°F, Sunny"
782
+
783
+ agent = Agent(
784
+ instructions="You are a weather assistant",
785
+ tools=[WeatherTool()]
786
+ )
787
+ agent.start("What's the weather in Paris?")
788
+ ```
789
+
790
+ ### Creating a Tool Package (pip installable)
791
+
792
+ ```toml
793
+ # pyproject.toml
794
+ [project]
795
+ name = "my-praisonai-tools"
796
+ version = "1.0.0"
797
+ dependencies = ["praisonaiagents"]
798
+
799
+ [project.entry-points."praisonaiagents.tools"]
800
+ my_tool = "my_package:MyTool"
801
+ ```
802
+
803
+ ```python
804
+ # my_package/__init__.py
805
+ from praisonaiagents import BaseTool
806
+
807
+ class MyTool(BaseTool):
808
+ name = "my_tool"
809
+ description = "My custom tool"
810
+
811
+ def run(self, param: str) -> str:
812
+ return f"Result: {param}"
813
+ ```
814
+
815
+ After `pip install`, tools are auto-discovered:
816
+ ```python
817
+ agent = Agent(tools=["my_tool"]) # Works automatically!
818
+ ```
819
+
820
+
821
+ ## Prompt Expansion
822
+
823
+ Expand short prompts into detailed, actionable prompts:
824
+
825
+ ### CLI Usage
826
+
827
+ ```bash
828
+ # Expand a short prompt into detailed prompt
829
+ praisonai "write a movie script in 3 lines" --expand-prompt
830
+
831
+ # With verbose output
832
+ praisonai "blog about AI" --expand-prompt -v
833
+
834
+ # With tools for context gathering
835
+ praisonai "latest AI trends" --expand-prompt --expand-tools tools.py
836
+
837
+ # Combine with query rewrite
838
+ praisonai "AI news" --query-rewrite --expand-prompt
839
+ ```
840
+
841
+ ### Programmatic Usage
842
+
843
+ ```python
844
+ from praisonaiagents import PromptExpanderAgent, ExpandStrategy
845
+
846
+ # Basic usage
847
+ agent = PromptExpanderAgent()
848
+ result = agent.expand("write a movie script in 3 lines")
849
+ print(result.expanded_prompt)
850
+
851
+ # With specific strategy
852
+ result = agent.expand("blog about AI", strategy=ExpandStrategy.DETAILED)
853
+
854
+ # Available strategies: BASIC, DETAILED, STRUCTURED, CREATIVE, AUTO
855
+ ```
856
+
857
+ **Key Difference:**
858
+ - `--query-rewrite`: Optimizes queries for **search/retrieval** (RAG)
859
+ - `--expand-prompt`: Expands prompts for **detailed task execution**
860
+
861
+
862
+ ## Web Search, Web Fetch & Prompt Caching
863
+
864
+ ### CLI Usage
865
+
866
+ ```bash
867
+ # Web Search - Get real-time information
868
+ praisonai "What are the latest AI news today?" --web-search --llm openai/gpt-4o-search-preview
869
+
870
+ # Web Fetch - Retrieve and analyze URL content (Anthropic only)
871
+ praisonai "Summarize https://docs.praison.ai" --web-fetch --llm anthropic/claude-sonnet-4-20250514
872
+
873
+ # Prompt Caching - Reduce costs for repeated prompts
874
+ praisonai "Analyze this document..." --prompt-caching --llm anthropic/claude-sonnet-4-20250514
875
+ ```
876
+
877
+ ### Programmatic Usage
878
+
879
+ ```python
880
+ from praisonaiagents import Agent
881
+
882
+ # Web Search
883
+ agent = Agent(
884
+ instructions="You are a research assistant",
885
+ llm="openai/gpt-4o-search-preview",
886
+ web_search=True
887
+ )
888
+
889
+ # Web Fetch (Anthropic only)
890
+ agent = Agent(
891
+ instructions="You are a content analyzer",
892
+ llm="anthropic/claude-sonnet-4-20250514",
893
+ web_fetch=True
894
+ )
895
+
896
+ # Prompt Caching
897
+ agent = Agent(
898
+ instructions="You are an AI assistant..." * 50, # Long system prompt
899
+ llm="anthropic/claude-sonnet-4-20250514",
900
+ prompt_caching=True
901
+ )
902
+ ```
903
+
904
+ **Supported Providers:**
905
+ | Feature | Providers |
906
+ |---------|-----------|
907
+ | Web Search | OpenAI, Gemini, Anthropic, xAI, Perplexity |
908
+ | Web Fetch | Anthropic |
909
+ | Prompt Caching | OpenAI (auto), Anthropic, Bedrock, Deepseek |
910
+
911
+
912
+ ## Development:
913
+
914
+ Below is used for development only.
915
+
916
+ ### Using uv
917
+ ```bash
918
+ # Install uv if you haven't already
919
+ pip install uv
920
+
921
+ # Install from requirements
922
+ uv pip install -r pyproject.toml
923
+
924
+ # Install with extras
925
+ uv pip install -r pyproject.toml --extra code
926
+ uv pip install -r pyproject.toml --extra "crewai,autogen"
927
+ ```
928
+
929
+ ### Bump and Release
930
+
931
+ ```bash
932
+ # From project root - bumps version and releases in one command
933
+ python src/praisonai/scripts/bump_and_release.py 2.2.99
934
+
935
+ # With praisonaiagents dependency
936
+ python src/praisonai/scripts/bump_and_release.py 2.2.99 --agents 0.0.169
937
+
938
+ # Then publish
939
+ cd src/praisonai && uv publish
940
+ ```
941
+
942
+ ## Contributing
943
+
944
+ - Fork on GitHub: Use the "Fork" button on the repository page.
945
+ - Clone your fork: `git clone https://github.com/yourusername/praisonAI.git`
946
+ - Create a branch: `git checkout -b new-feature`
947
+ - Make changes and commit: `git commit -am "Add some feature"`
948
+ - Push to your fork: `git push origin new-feature`
949
+ - Submit a pull request via GitHub's web interface.
950
+ - Await feedback from project maintainers.
951
+
952
+ ## Other Features
953
+
954
+ - 🔄 Use CrewAI or AG2 (Formerly AutoGen) Framework
955
+ - 💻 Chat with ENTIRE Codebase
956
+ - 🎨 Interactive UIs
957
+ - 📄 YAML-based Configuration
958
+ - 🛠️ Custom Tool Integration
959
+ - 🔍 Internet Search Capability (using Crawl4AI and Tavily)
960
+ - 🖼️ Vision Language Model (VLM) Support
961
+ - 🎙️ Real-time Voice Interaction
962
+
963
+ ## Video Tutorials
964
+
965
+ | Topic | Video |
966
+ |-------|--------|
967
+ | AI Agents with Self Reflection | [![Self Reflection](https://img.youtube.com/vi/vLXobEN2Vc8/0.jpg)](https://www.youtube.com/watch?v=vLXobEN2Vc8) |
968
+ | Reasoning Data Generating Agent | [![Reasoning Data](https://img.youtube.com/vi/fUT332Y2zA8/0.jpg)](https://www.youtube.com/watch?v=fUT332Y2zA8) |
969
+ | AI Agents with Reasoning | [![Reasoning](https://img.youtube.com/vi/KNDVWGN3TpM/0.jpg)](https://www.youtube.com/watch?v=KNDVWGN3TpM) |
970
+ | Multimodal AI Agents | [![Multimodal](https://img.youtube.com/vi/hjAWmUT1qqY/0.jpg)](https://www.youtube.com/watch?v=hjAWmUT1qqY) |
971
+ | AI Agents Workflow | [![Workflow](https://img.youtube.com/vi/yWTH44QPl2A/0.jpg)](https://www.youtube.com/watch?v=yWTH44QPl2A) |
972
+ | Async AI Agents | [![Async](https://img.youtube.com/vi/VhVQfgo00LE/0.jpg)](https://www.youtube.com/watch?v=VhVQfgo00LE) |
973
+ | Mini AI Agents | [![Mini](https://img.youtube.com/vi/OkvYp5aAGSg/0.jpg)](https://www.youtube.com/watch?v=OkvYp5aAGSg) |
974
+ | AI Agents with Memory | [![Memory](https://img.youtube.com/vi/1hVfVxvPnnQ/0.jpg)](https://www.youtube.com/watch?v=1hVfVxvPnnQ) |
975
+ | Repetitive Agents | [![Repetitive](https://img.youtube.com/vi/dAYGxsjDOPg/0.jpg)](https://www.youtube.com/watch?v=dAYGxsjDOPg) |
976
+ | Introduction | [![Introduction](https://img.youtube.com/vi/Fn1lQjC0GO0/0.jpg)](https://www.youtube.com/watch?v=Fn1lQjC0GO0) |
977
+ | Tools Overview | [![Tools Overview](https://img.youtube.com/vi/XaQRgRpV7jo/0.jpg)](https://www.youtube.com/watch?v=XaQRgRpV7jo) |
978
+ | Custom Tools | [![Custom Tools](https://img.youtube.com/vi/JSU2Rndh06c/0.jpg)](https://www.youtube.com/watch?v=JSU2Rndh06c) |
979
+ | Firecrawl Integration | [![Firecrawl](https://img.youtube.com/vi/UoqUDcLcOYo/0.jpg)](https://www.youtube.com/watch?v=UoqUDcLcOYo) |
980
+ | User Interface | [![UI](https://img.youtube.com/vi/tg-ZjNl3OCg/0.jpg)](https://www.youtube.com/watch?v=tg-ZjNl3OCg) |
981
+ | Crawl4AI Integration | [![Crawl4AI](https://img.youtube.com/vi/KAvuVUh0XU8/0.jpg)](https://www.youtube.com/watch?v=KAvuVUh0XU8) |
982
+ | Chat Interface | [![Chat](https://img.youtube.com/vi/sw3uDqn2h1Y/0.jpg)](https://www.youtube.com/watch?v=sw3uDqn2h1Y) |
983
+ | Code Interface | [![Code](https://img.youtube.com/vi/_5jQayO-MQY/0.jpg)](https://www.youtube.com/watch?v=_5jQayO-MQY) |
984
+ | Mem0 Integration | [![Mem0](https://img.youtube.com/vi/KIGSgRxf1cY/0.jpg)](https://www.youtube.com/watch?v=KIGSgRxf1cY) |
985
+ | Training | [![Training](https://img.youtube.com/vi/aLawE8kwCrI/0.jpg)](https://www.youtube.com/watch?v=aLawE8kwCrI) |
986
+ | Realtime Voice Interface | [![Realtime](https://img.youtube.com/vi/frRHfevTCSw/0.jpg)](https://www.youtube.com/watch?v=frRHfevTCSw) |
987
+ | Call Interface | [![Call](https://img.youtube.com/vi/m1cwrUG2iAk/0.jpg)](https://www.youtube.com/watch?v=m1cwrUG2iAk) |
988
+ | Reasoning Extract Agents | [![Reasoning Extract](https://img.youtube.com/vi/2PPamsADjJA/0.jpg)](https://www.youtube.com/watch?v=2PPamsADjJA) |
989
+