praisonAI 2.3.26__tar.gz → 2.3.28__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 (75) hide show
  1. {praisonai-2.3.26 → praisonai-2.3.28}/PKG-INFO +440 -296
  2. {praisonai-2.3.26 → praisonai-2.3.28}/PraisonAI.egg-info/PKG-INFO +440 -296
  3. {praisonai-2.3.26 → praisonai-2.3.28}/PraisonAI.egg-info/requires.txt +1 -1
  4. {praisonai-2.3.26 → praisonai-2.3.28}/README.md +438 -294
  5. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/workflow.py +80 -2
  6. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/main.py +152 -0
  7. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/deploy.py +1 -1
  8. praisonai-2.3.28/praisonai/version.py +1 -0
  9. {praisonai-2.3.26 → praisonai-2.3.28}/pyproject.toml +1 -1
  10. praisonai-2.3.26/praisonai/version.py +0 -1
  11. {praisonai-2.3.26 → praisonai-2.3.28}/PraisonAI.egg-info/SOURCES.txt +0 -0
  12. {praisonai-2.3.26 → praisonai-2.3.28}/PraisonAI.egg-info/dependency_links.txt +0 -0
  13. {praisonai-2.3.26 → praisonai-2.3.28}/PraisonAI.egg-info/entry_points.txt +0 -0
  14. {praisonai-2.3.26 → praisonai-2.3.28}/PraisonAI.egg-info/top_level.txt +0 -0
  15. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/__init__.py +0 -0
  16. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/__main__.py +0 -0
  17. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/agents_generator.py +0 -0
  18. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/api/call.py +0 -0
  19. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/auto.py +0 -0
  20. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/chainlit_ui.py +0 -0
  21. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/__init__.py +0 -0
  22. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/__init__.py +0 -0
  23. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/auto_memory.py +0 -0
  24. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/base.py +0 -0
  25. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/fast_context.py +0 -0
  26. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/flow_display.py +0 -0
  27. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/guardrail.py +0 -0
  28. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/handoff.py +0 -0
  29. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/image.py +0 -0
  30. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/knowledge.py +0 -0
  31. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/mcp.py +0 -0
  32. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/metrics.py +0 -0
  33. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/router.py +0 -0
  34. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/session.py +0 -0
  35. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/telemetry.py +0 -0
  36. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/todo.py +0 -0
  37. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/cli/features/tools.py +0 -0
  38. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/inbuilt_tools/__init__.py +0 -0
  39. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  40. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/inc/__init__.py +0 -0
  41. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/inc/config.py +0 -0
  42. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/inc/models.py +0 -0
  43. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/scheduler.py +0 -0
  44. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/setup/__init__.py +0 -0
  45. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/setup/build.py +0 -0
  46. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/setup/post_install.py +0 -0
  47. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/setup/setup_conda_env.py +0 -0
  48. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/setup.py +0 -0
  49. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/test.py +0 -0
  50. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/train.py +0 -0
  51. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/train_vision.py +0 -0
  52. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/agents.py +0 -0
  53. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/callbacks.py +0 -0
  54. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/chat.py +0 -0
  55. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/code.py +0 -0
  56. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/colab.py +0 -0
  57. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/colab_chainlit.py +0 -0
  58. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/components/aicoder.py +0 -0
  59. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/context.py +0 -0
  60. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/database_config.py +0 -0
  61. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/db.py +0 -0
  62. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/realtime.py +0 -0
  63. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/realtimeclient/__init__.py +0 -0
  64. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/realtimeclient/tools.py +0 -0
  65. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/ui/sql_alchemy.py +0 -0
  66. {praisonai-2.3.26 → praisonai-2.3.28}/praisonai/upload_vision.py +0 -0
  67. {praisonai-2.3.26 → praisonai-2.3.28}/setup.cfg +0 -0
  68. {praisonai-2.3.26 → praisonai-2.3.28}/tests/test.py +0 -0
  69. {praisonai-2.3.26 → praisonai-2.3.28}/tests/test_agents_playbook.py +0 -0
  70. {praisonai-2.3.26 → praisonai-2.3.28}/tests/test_basic.py +0 -0
  71. {praisonai-2.3.26 → praisonai-2.3.28}/tests/test_cli_features.py +0 -0
  72. {praisonai-2.3.26 → praisonai-2.3.28}/tests/test_custom_tools_fix.py +0 -0
  73. {praisonai-2.3.26 → praisonai-2.3.28}/tests/test_double_api_fix.py +0 -0
  74. {praisonai-2.3.26 → praisonai-2.3.28}/tests/test_phase2_refactor.py +0 -0
  75. {praisonai-2.3.26 → praisonai-2.3.28}/tests/test_runner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PraisonAI
3
- Version: 2.3.26
3
+ Version: 2.3.28
4
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
5
  Author: Mervin Praison
6
6
  License: MIT
@@ -11,7 +11,7 @@ Description-Content-Type: text/markdown
11
11
  Requires-Dist: rich>=13.7
12
12
  Requires-Dist: markdown>=3.5
13
13
  Requires-Dist: pyparsing>=3.0.0
14
- Requires-Dist: praisonaiagents>=0.1.4
14
+ Requires-Dist: praisonaiagents>=0.1.7
15
15
  Requires-Dist: python-dotenv>=0.19.0
16
16
  Requires-Dist: instructor>=1.3.3
17
17
  Requires-Dist: PyYAML>=6.0
@@ -127,7 +127,113 @@ PraisonAI is a production-ready Multi-AI Agents framework with self-reflection,
127
127
  </a>
128
128
  </div>
129
129
 
130
- ## Key Features
130
+ ---
131
+
132
+ ## 📑 Table of Contents
133
+
134
+ - [🚀 Quick Start](#-quick-start)
135
+ - [📦 Installation](#-installation)
136
+ - [Python SDK](#python-sdk)
137
+ - [JavaScript SDK](#javascript-sdk)
138
+ - [💻 Usage](#-usage)
139
+ - [Python Code Examples](#python-code-examples)
140
+ - [CLI / No-Code Interface](#cli--no-code-interface)
141
+ - [JavaScript Code Examples](#javascript-code-examples)
142
+ - [✨ Key Features](#-key-features)
143
+ - [🌐 Supported Providers](#-supported-providers)
144
+ - [🛠️ Custom Tools](#️-custom-tools)
145
+ - [🔧 Configuration & Integration](#-configuration--integration)
146
+ - [Ollama Integration](#ollama-integration)
147
+ - [Groq Integration](#groq-integration)
148
+ - [100+ Models Support](#100-models-support)
149
+ - [📋 Workflows](#-workflows)
150
+ - [Workflow Patterns](#workflow-patterns)
151
+ - [YAML Configuration](#yaml-configuration)
152
+ - [Agents Playbook](#agents-playbook)
153
+ - [🧠 Memory & Context](#-memory--context)
154
+ - [🔬 Advanced Features](#-advanced-features)
155
+ - [Research & Intelligence](#research--intelligence)
156
+ - [Planning & Workflows](#planning--workflows)
157
+ - [Specialised Agents](#specialised-agents)
158
+ - [MCP Protocol](#mcp-protocol)
159
+ - [Safety & Control](#safety--control)
160
+ - [Developer Tools](#developer-tools)
161
+ - [📊 Process Types & Patterns](#-process-types--patterns)
162
+ - [Sequential Process](#sequential-process)
163
+ - [Hierarchical Process](#hierarchical-process)
164
+ - [Workflow Process](#workflow-process)
165
+ - [Agentic Patterns](#agentic-patterns)
166
+ - [🎓 Video Tutorials](#-video-tutorials)
167
+ - [⭐ Star History](#-star-history)
168
+ - [👥 Contributing](#-contributing)
169
+ - [🔧 Development](#-development)
170
+
171
+ ---
172
+
173
+ ## 🚀 Quick Start
174
+
175
+ Get started with PraisonAI in under 1 minute:
176
+
177
+ ```bash
178
+ # Install
179
+ pip install praisonaiagents
180
+
181
+ # Set API key
182
+ export OPENAI_API_KEY=your_key_here
183
+
184
+ # Create a simple agent
185
+ python -c "from praisonaiagents import Agent; Agent(instructions='You are a helpful AI assistant').start('Write a haiku about AI')"
186
+ ```
187
+
188
+ ---
189
+
190
+ ## 📦 Installation
191
+
192
+ ### Python SDK
193
+
194
+ Lightweight package dedicated for coding:
195
+
196
+ ```bash
197
+ pip install praisonaiagents
198
+ ```
199
+
200
+ For the full framework with CLI support:
201
+
202
+ ```bash
203
+ pip install praisonai
204
+ ```
205
+
206
+ ### JavaScript SDK
207
+
208
+ ```bash
209
+ npm install praisonai
210
+ ```
211
+
212
+ ---
213
+
214
+ ## 💻 Usage
215
+
216
+ ### Python Code Examples
217
+
218
+ - [📘 Complete Python Examples](#using-python-code)
219
+ - [🔧 Custom Tools](#️-custom-tools)
220
+ - [🧠 Memory Configuration](#-memory--context)
221
+
222
+ ### CLI / No-Code Interface
223
+
224
+ - [🎯 Auto Mode](#auto-mode)
225
+ - [🔬 Deep Research](#deep-research-cli)
226
+ - [📋 Planning Mode](#planning-mode-cli)
227
+ - [💾 Memory Management](#memory-cli)
228
+ - [🔄 Workflow Execution](#workflow-cli)
229
+
230
+ ### JavaScript Code Examples
231
+
232
+ - [💻 JavaScript Usage](#using-javascript-code)
233
+
234
+ ---
235
+
236
+ ## ✨ Key Features
131
237
 
132
238
  | Feature | Code | Docs |
133
239
  |---------|:----:|:----:|
@@ -211,7 +317,11 @@ PraisonAI is a production-ready Multi-AI Agents framework with self-reflection,
211
317
  | 💾 Auto-Save Sessions | [Example](#session-management-python) | [📖](https://docs.praison.ai/cli/session) |
212
318
  | 📜 History in Context | [Example](#session-management-python) | [📖](https://docs.praison.ai/cli/session) |
213
319
 
214
- ## Supported Providers
320
+ ---
321
+
322
+ ## 🌐 Supported Providers
323
+
324
+ PraisonAI supports 100+ LLM providers through seamless integration:
215
325
 
216
326
  | Provider | Example |
217
327
  |----------|:-------:|
@@ -240,14 +350,14 @@ PraisonAI is a production-ready Multi-AI Agents framework with self-reflection,
240
350
  | Moonshot | [Example](examples/python/providers/moonshot/moonshot_example.py) |
241
351
  | vLLM | [Example](examples/python/providers/vllm/vllm_example.py) |
242
352
 
243
- ## Using Python Code
353
+ ---
354
+
355
+ ## 📘 Using Python Code
244
356
 
245
357
  Light weight package dedicated for coding:
246
- ```bash
247
- pip install praisonaiagents
248
- ```
249
358
 
250
359
  ```bash
360
+ pip install praisonaiagents
251
361
  export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
252
362
  ```
253
363
 
@@ -702,6 +812,77 @@ result = manager.execute_yaml(
702
812
  )
703
813
  ```
704
814
 
815
+ ### Complete workflow.yaml Reference
816
+
817
+ ```yaml
818
+ # workflow.yaml - Full feature reference
819
+ name: Complete Workflow
820
+ description: Demonstrates all workflow.yaml features
821
+ framework: praisonai # praisonai, crewai, autogen
822
+ process: workflow # sequential, hierarchical, workflow
823
+
824
+ workflow:
825
+ planning: true
826
+ planning_llm: gpt-4o
827
+ reasoning: true
828
+ verbose: true
829
+ memory_config:
830
+ provider: chroma
831
+ persist: true
832
+
833
+ variables:
834
+ topic: AI trends
835
+ items: [ML, NLP, Vision]
836
+
837
+ agents:
838
+ researcher:
839
+ name: Researcher
840
+ role: Research Analyst
841
+ goal: Research topics thoroughly
842
+ instructions: "Provide detailed research findings"
843
+ backstory: "Expert researcher with 10 years experience" # alias for instructions
844
+ llm: gpt-4o-mini
845
+ function_calling_llm: gpt-4o # For tool calls
846
+ max_rpm: 10 # Rate limiting
847
+ max_execution_time: 300 # Timeout in seconds
848
+ reflect_llm: gpt-4o # For self-reflection
849
+ min_reflect: 1
850
+ max_reflect: 3
851
+ system_template: "You are a helpful assistant"
852
+ tools:
853
+ - tavily_search
854
+
855
+ writer:
856
+ name: Writer
857
+ role: Content Writer
858
+ goal: Write clear content
859
+ instructions: "Write engaging content"
860
+
861
+ steps:
862
+ - name: research_step
863
+ agent: researcher
864
+ action: "Research {{topic}}"
865
+ expected_output: "Comprehensive research report"
866
+ output_file: "output/research.md"
867
+ create_directory: true
868
+
869
+ - name: writing_step
870
+ agent: writer
871
+ action: "Write article based on research"
872
+ context: # Task dependencies
873
+ - research_step
874
+ output_json: # Structured output
875
+ type: object
876
+ properties:
877
+ title: { type: string }
878
+ content: { type: string }
879
+
880
+ callbacks:
881
+ on_workflow_start: log_start
882
+ on_step_complete: log_step
883
+ on_workflow_complete: log_complete
884
+ ```
885
+
705
886
  ### 9. Hooks
706
887
 
707
888
  Configure in `.praison/hooks.json`:
@@ -718,9 +899,50 @@ hooks.register("pre_write_code", lambda ctx: print(f"Writing {ctx['file']}"))
718
899
  result = hooks.execute("pre_write_code", {"file": "main.py"})
719
900
  ```
720
901
 
721
- ### 10. Extended agents.yaml with Workflow Patterns
902
+ ### 10. Field Names Reference (A-I-G-S)
903
+
904
+ PraisonAI accepts both old (agents.yaml) and new (workflow.yaml) field names. Use the **canonical names** for new projects:
905
+
906
+ | Canonical (Recommended) | Alias (Also Works) | Purpose |
907
+ |-------------------------|-------------------|---------|
908
+ | `agents` | `roles` | Define agent personas |
909
+ | `instructions` | `backstory` | Agent behavior/persona |
910
+ | `action` | `description` | What the step does |
911
+ | `steps` | `tasks` (nested) | Define work items |
912
+ | `name` | `topic` | Workflow identifier |
913
+
914
+ **A-I-G-S Mnemonic** - Easy to remember:
915
+ - **A**gents - Who does the work
916
+ - **I**nstructions - How they behave
917
+ - **G**oal - What they achieve
918
+ - **S**teps - What they do
919
+
920
+ ```yaml
921
+ # Quick Reference - Canonical Format
922
+ name: My Workflow # Workflow name (not 'topic')
923
+ agents: # Define agents (not 'roles')
924
+ my_agent:
925
+ role: Job Title # Agent's role
926
+ goal: What to achieve # Agent's goal
927
+ instructions: How to act # Agent's behavior (not 'backstory')
928
+
929
+ steps: # Define steps (not 'tasks')
930
+ - agent: my_agent
931
+ action: What to do # Step action (not 'description')
932
+ ```
933
+
934
+ > **Note:** The parser accepts both old and new names. Run `praisonai workflow validate <file.yaml>` to see suggestions for canonical names.
935
+
936
+ ### 11. Extended agents.yaml with Workflow Patterns
937
+
938
+ **Feature Parity:** Both `agents.yaml` and `workflow.yaml` now support the same features:
939
+ - All workflow patterns (route, parallel, loop, repeat)
940
+ - All agent fields (function_calling_llm, max_rpm, max_execution_time, reflect_llm, templates)
941
+ - All step fields (expected_output, context, output_json, create_directory, callback)
942
+ - Framework support (praisonai, crewai, autogen)
943
+ - Process types (sequential, hierarchical, workflow)
722
944
 
723
- You can now use advanced workflow patterns directly in agents.yaml by setting `process: workflow`:
945
+ You can use advanced workflow patterns directly in agents.yaml by setting `process: workflow`:
724
946
 
725
947
  ```yaml
726
948
  # agents.yaml with workflow patterns
@@ -736,15 +958,15 @@ workflow:
736
958
  variables:
737
959
  topic: AI trends
738
960
 
739
- roles:
961
+ agents: # Canonical: use 'agents' instead of 'roles'
740
962
  classifier:
741
963
  role: Request Classifier
742
- backstory: "Classify requests into categories"
964
+ instructions: "Classify requests into categories" # Canonical: use 'instructions' instead of 'backstory'
743
965
  goal: Classify requests
744
966
 
745
967
  researcher:
746
968
  role: Research Analyst
747
- backstory: "Expert researcher"
969
+ instructions: "Expert researcher" # Canonical: use 'instructions' instead of 'backstory'
748
970
  goal: Research topics
749
971
  tools:
750
972
  - tavily_search
@@ -787,9 +1009,13 @@ Run with the same simple command:
787
1009
  praisonai agents.yaml
788
1010
  ```
789
1011
 
790
- ## Using No Code
1012
+ ---
1013
+
1014
+ ## 🎯 CLI / No-Code Interface
1015
+
1016
+ PraisonAI provides a powerful CLI for no-code automation and quick prototyping.
791
1017
 
792
- ### Auto Mode:
1018
+ ### Auto Mode
793
1019
  ```bash
794
1020
  pip install praisonai
795
1021
  export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
@@ -936,10 +1162,43 @@ praisonai "GPT-5" --workflow "Research:Search for info,Write:Write blog" --tools
936
1162
  praisonai workflow help
937
1163
  ```
938
1164
 
1165
+ #### YAML Workflow Files:
1166
+ ```bash
1167
+ # Run a YAML workflow file
1168
+ praisonai workflow run research.yaml
1169
+
1170
+ # Run with variables
1171
+ praisonai workflow run research.yaml --var topic="AI trends"
1172
+
1173
+ # Validate a YAML workflow
1174
+ praisonai workflow validate research.yaml
1175
+
1176
+ # Create from template (simple, routing, parallel, loop, evaluator-optimizer)
1177
+ praisonai workflow template routing --output my_workflow.yaml
1178
+ ```
1179
+
1180
+ #### Auto-Generate Workflows:
1181
+ ```bash
1182
+ # Auto-generate a sequential workflow from topic
1183
+ praisonai workflow auto "Research AI trends"
1184
+
1185
+ # Generate parallel workflow (multiple agents work concurrently)
1186
+ praisonai workflow auto "Research AI trends" --pattern parallel
1187
+
1188
+ # Generate routing workflow (classifier routes to specialists)
1189
+ praisonai workflow auto "Build a chatbot" --pattern routing
1190
+
1191
+ # Specify output file
1192
+ praisonai workflow auto "Research AI" --pattern sequential --output my_workflow.yaml
1193
+ ```
1194
+
939
1195
  **Workflow CLI Options:**
940
1196
  | Flag | Description |
941
1197
  |------|-------------|
942
1198
  | `--workflow-var key=value` | Set workflow variable (can be repeated) |
1199
+ | `--var key=value` | Set variable for YAML workflows |
1200
+ | `--pattern <pattern>` | Pattern for auto-generation (sequential, parallel, routing, loop) |
1201
+ | `--output <file>` | Output file for auto-generation |
943
1202
  | `--llm <model>` | LLM model (e.g., openai/gpt-4o-mini) |
944
1203
  | `--tools <tools>` | Tools (comma-separated, e.g., tavily) |
945
1204
  | `--planning` | Enable planning mode |
@@ -1425,7 +1684,9 @@ server.run() # stdio for Claude Desktop
1425
1684
  | 📥 Web Fetch - URL content retrieval | [📖](https://docs.praison.ai/cli/web-fetch) |
1426
1685
  | 💾 Prompt Caching - Cost reduction | [📖](https://docs.praison.ai/cli/prompt-caching) |
1427
1686
 
1428
- ## Using JavaScript Code
1687
+ ---
1688
+
1689
+ ## 💻 Using JavaScript Code
1429
1690
 
1430
1691
  ```bash
1431
1692
  npm install praisonai
@@ -1440,11 +1701,17 @@ agent.start('Write a movie script about a robot in Mars');
1440
1701
 
1441
1702
  ![PraisonAI CLI Demo](docs/demo/praisonai-cli-demo.gif)
1442
1703
 
1443
- ## Star History
1704
+ ---
1705
+
1706
+ ## ⭐ Star History
1444
1707
 
1445
1708
  [![Star History Chart](https://api.star-history.com/svg?repos=MervinPraison/PraisonAI&type=Date)](https://docs.praison.ai)
1446
1709
 
1447
- ## AI Agents Flow
1710
+ ---
1711
+
1712
+ ## 📊 Process Types & Patterns
1713
+
1714
+ ### AI Agents Flow
1448
1715
 
1449
1716
  ```mermaid
1450
1717
  graph LR
@@ -1783,31 +2050,40 @@ flowchart LR
1783
2050
  style Out fill:#8B0000,color:#fff
1784
2051
  ```
1785
2052
 
1786
- ## Adding Models
2053
+ ---
1787
2054
 
1788
- <div align="center">
1789
- <a href="https://docs.praison.ai/models">
1790
- <p align="center">
1791
- <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" />
1792
- </p>
1793
- </a>
1794
- </div>
2055
+ ## 🔧 Configuration & Integration
2056
+
2057
+ ### Ollama Integration
1795
2058
 
1796
- ## Ollama Integration
1797
2059
  ```bash
1798
2060
  export OPENAI_BASE_URL=http://localhost:11434/v1
1799
2061
  ```
1800
2062
 
1801
- ## Groq Integration
2063
+ ### Groq Integration
2064
+
1802
2065
  Replace xxxx with Groq API KEY:
2066
+
1803
2067
  ```bash
1804
2068
  export OPENAI_API_KEY=xxxxxxxxxxx
1805
2069
  export OPENAI_BASE_URL=https://api.groq.com/openai/v1
1806
2070
  ```
1807
2071
 
1808
- ## No Code Options
2072
+ ### 100+ Models Support
2073
+
2074
+ PraisonAI supports 100+ LLM models from various providers. Visit our [models documentation](https://docs.praison.ai/models/) for the complete list.
2075
+
2076
+ <div align="center">
2077
+ <a href="https://docs.praison.ai/models">
2078
+ <p align="center">
2079
+ <img src="https://img.shields.io/badge/📚_Models_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Models Documentation" />
2080
+ </p>
2081
+ </a>
2082
+ </div>
2083
+
2084
+ ---
1809
2085
 
1810
- ## Agents Playbook
2086
+ ## 📋 Agents Playbook
1811
2087
 
1812
2088
  ### Simple Playbook Example
1813
2089
 
@@ -1816,9 +2092,9 @@ Create `agents.yaml` file and add the code below:
1816
2092
  ```yaml
1817
2093
  framework: praisonai
1818
2094
  topic: Artificial Intelligence
1819
- roles:
2095
+ agents: # Canonical: use 'agents' instead of 'roles'
1820
2096
  screenwriter:
1821
- backstory: "Skilled in crafting scripts with engaging dialogue about {topic}."
2097
+ instructions: "Skilled in crafting scripts with engaging dialogue about {topic}." # Canonical: use 'instructions' instead of 'backstory'
1822
2098
  goal: Create scripts from concepts.
1823
2099
  role: Screenwriter
1824
2100
  tasks:
@@ -1832,18 +2108,11 @@ roles:
1832
2108
  praisonai agents.yaml
1833
2109
  ```
1834
2110
 
1835
- ## Use 100+ Models
2111
+ ---
1836
2112
 
1837
- - https://docs.praison.ai/models/
1838
- <div align="center">
1839
- <a href="https://docs.praison.ai">
1840
- <p align="center">
1841
- <img src="https://img.shields.io/badge/📚_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" />
1842
- </p>
1843
- </a>
1844
- </div>
2113
+ ## 🛠️ Custom Tools / Create Plugins
1845
2114
 
1846
- ## Custom Tools
2115
+ PraisonAI supports multiple ways to create and integrate custom tools (plugins) into your agents.
1847
2116
 
1848
2117
  ### Using `@tool` Decorator
1849
2118
 
@@ -1916,170 +2185,142 @@ After `pip install`, tools are auto-discovered:
1916
2185
  agent = Agent(tools=["my_tool"]) # Works automatically!
1917
2186
  ```
1918
2187
 
2188
+ ---
1919
2189
 
1920
- ## Prompt Expansion
1921
-
1922
- Expand short prompts into detailed, actionable prompts:
1923
-
1924
- ### CLI Usage
1925
-
1926
- ```bash
1927
- # Expand a short prompt into detailed prompt
1928
- praisonai "write a movie script in 3 lines" --expand-prompt
1929
-
1930
- # With verbose output
1931
- praisonai "blog about AI" --expand-prompt -v
1932
-
1933
- # With tools for context gathering
1934
- praisonai "latest AI trends" --expand-prompt --expand-tools tools.py
1935
-
1936
- # Combine with query rewrite
1937
- praisonai "AI news" --query-rewrite --expand-prompt
1938
- ```
1939
-
1940
- ### Programmatic Usage
1941
-
1942
- ```python
1943
- from praisonaiagents import PromptExpanderAgent, ExpandStrategy
1944
-
1945
- # Basic usage
1946
- agent = PromptExpanderAgent()
1947
- result = agent.expand("write a movie script in 3 lines")
1948
- print(result.expanded_prompt)
1949
-
1950
- # With specific strategy
1951
- result = agent.expand("blog about AI", strategy=ExpandStrategy.DETAILED)
1952
-
1953
- # Available strategies: BASIC, DETAILED, STRUCTURED, CREATIVE, AUTO
1954
- ```
1955
-
1956
- **Key Difference:**
1957
- - `--query-rewrite`: Optimizes queries for **search/retrieval** (RAG)
1958
- - `--expand-prompt`: Expands prompts for **detailed task execution**
1959
-
1960
-
1961
- ## Web Search, Web Fetch & Prompt Caching
1962
-
1963
- ### CLI Usage
1964
-
1965
- ```bash
1966
- # Web Search - Get real-time information
1967
- praisonai "What are the latest AI news today?" --web-search --llm openai/gpt-4o-search-preview
1968
-
1969
- # Web Fetch - Retrieve and analyze URL content (Anthropic only)
1970
- praisonai "Summarize https://docs.praison.ai" --web-fetch --llm anthropic/claude-sonnet-4-20250514
1971
-
1972
- # Prompt Caching - Reduce costs for repeated prompts
1973
- praisonai "Analyze this document..." --prompt-caching --llm anthropic/claude-sonnet-4-20250514
1974
- ```
1975
-
1976
- ### Programmatic Usage
1977
-
1978
- ```python
1979
- from praisonaiagents import Agent
1980
-
1981
- # Web Search
1982
- agent = Agent(
1983
- instructions="You are a research assistant",
1984
- llm="openai/gpt-4o-search-preview",
1985
- web_search=True
1986
- )
1987
-
1988
- # Web Fetch (Anthropic only)
1989
- agent = Agent(
1990
- instructions="You are a content analyzer",
1991
- llm="anthropic/claude-sonnet-4-20250514",
1992
- web_fetch=True
1993
- )
1994
-
1995
- # Prompt Caching
1996
- agent = Agent(
1997
- instructions="You are an AI assistant..." * 50, # Long system prompt
1998
- llm="anthropic/claude-sonnet-4-20250514",
1999
- prompt_caching=True
2000
- )
2001
- ```
2002
-
2003
- **Supported Providers:**
2004
- | Feature | Providers |
2005
- |---------|-----------|
2006
- | Web Search | OpenAI, Gemini, Anthropic, xAI, Perplexity |
2007
- | Web Fetch | Anthropic |
2008
- | Prompt Caching | OpenAI (auto), Anthropic, Bedrock, Deepseek |
2009
-
2010
-
2011
-
2012
-
2013
-
2014
- ## MCP (Model Context Protocol)
2015
-
2016
- PraisonAI supports MCP Protocol Revision 2025-11-25 with multiple transports.
2017
-
2018
- ### MCP Client (Consume MCP Servers)
2019
-
2020
- ```python
2021
- from praisonaiagents import Agent, MCP
2022
-
2023
- # stdio - Local NPX/Python servers
2024
- agent = Agent(tools=MCP("npx @modelcontextprotocol/server-memory"))
2025
-
2026
- # Streamable HTTP - Production servers
2027
- agent = Agent(tools=MCP("https://api.example.com/mcp"))
2028
-
2029
- # WebSocket - Real-time bidirectional
2030
- agent = Agent(tools=MCP("wss://api.example.com/mcp", auth_token="token"))
2190
+ ## 🧠 Memory & Context
2031
2191
 
2032
- # SSE (Legacy) - Backward compatibility
2033
- agent = Agent(tools=MCP("http://localhost:8080/sse"))
2192
+ PraisonAI provides zero-dependency persistent memory for agents. For detailed examples, see [section 6. Agent Memory](#6-agent-memory-zero-dependencies) in the Python Code Examples.
2034
2193
 
2035
- # With environment variables
2036
- agent = Agent(
2037
- tools=MCP(
2038
- command="npx",
2039
- args=["-y", "@modelcontextprotocol/server-brave-search"],
2040
- env={"BRAVE_API_KEY": "your-key"}
2041
- )
2042
- )
2043
- ```
2194
+ ---
2044
2195
 
2045
- ### MCP Server (Expose Tools as MCP Server)
2196
+ ## 🔬 Advanced Features
2197
+
2198
+ ### Research & Intelligence
2199
+
2200
+ - 🔬 **Deep Research Agents** - OpenAI & Gemini support for automated research
2201
+ - 🔄 **Query Rewriter Agent** - HyDE, Step-back, Multi-query strategies for RAG optimization
2202
+ - 🌐 **Native Web Search** - Real-time search via OpenAI, Gemini, Anthropic, xAI, Perplexity
2203
+ - 📥 **Web Fetch** - Retrieve full content from URLs (Anthropic)
2204
+ - 📝 **Prompt Expander Agent** - Expand short prompts into detailed instructions
2205
+
2206
+ ### Memory & Caching
2207
+
2208
+ - 💾 **Prompt Caching** - Reduce costs & latency (OpenAI, Anthropic, Bedrock, Deepseek)
2209
+ - 🧠 **Claude Memory Tool** - Persistent cross-conversation memory (Anthropic Beta)
2210
+ - 💾 **File-Based Memory** - Zero-dependency persistent memory for all agents
2211
+ - 🔍 **Built-in Search Tools** - Tavily, You.com, Exa for web search, news, content extraction
2212
+
2213
+ ### Planning & Workflows
2214
+
2215
+ - 📋 **Planning Mode** - Plan before execution for agents & multi-agent systems
2216
+ - 🔧 **Planning Tools** - Research with tools during planning phase
2217
+ - 🧠 **Planning Reasoning** - Chain-of-thought planning for complex tasks
2218
+ - ⛓️ **Prompt Chaining** - Sequential prompt workflows with conditional gates
2219
+ - 🔍 **Evaluator Optimiser** - Generate and optimize through iterative feedback
2220
+ - 👷 **Orchestrator Workers** - Distribute tasks among specialised workers
2221
+ - ⚡ **Parallelisation** - Execute tasks in parallel for improved performance
2222
+ - 🔁 **Repetitive Agents** - Handle repetitive tasks through automated loops
2223
+ - 🤖 **Autonomous Workflow** - Monitor, act, adapt based on environment feedback
2224
+
2225
+ ### Specialised Agents
2226
+
2227
+ - 🖼️ **Image Generation Agent** - Create images from text descriptions
2228
+ - 📷 **Image to Text Agent** - Extract text and descriptions from images
2229
+ - 🎬 **Video Agent** - Analyse and process video content
2230
+ - 📊 **Data Analyst Agent** - Analyse data and generate insights
2231
+ - 💰 **Finance Agent** - Financial analysis and recommendations
2232
+ - 🛒 **Shopping Agent** - Price comparison and shopping assistance
2233
+ - ⭐ **Recommendation Agent** - Personalised recommendations
2234
+ - 📖 **Wikipedia Agent** - Search and extract Wikipedia information
2235
+ - 💻 **Programming Agent** - Code development and analysis
2236
+ - 📝 **Markdown Agent** - Generate and format Markdown content
2237
+ - 🔀 **Router Agent** - Dynamic task routing with cost optimisation
2238
+
2239
+ ### MCP Protocol
2240
+
2241
+ - 🔌 **MCP Transports** - stdio, Streamable HTTP, WebSocket, SSE (Protocol 2025-11-25)
2242
+ - 🌐 **WebSocket MCP** - Real-time bidirectional connections with auto-reconnect
2243
+ - 🔐 **MCP Security** - Origin validation, DNS rebinding prevention, secure sessions
2244
+ - 🔄 **MCP Resumability** - SSE stream recovery via Last-Event-ID
2245
+
2246
+ ### Safety & Control
2247
+
2248
+ - 🤝 **Agent Handoffs** - Transfer context between specialised agents
2249
+ - 🛡️ **Guardrails** - Input/output validation and safety checks
2250
+ - ✅ **Human Approval** - Require human confirmation for critical actions
2251
+ - 💬 **Sessions Management** - Isolated conversation contexts
2252
+ - 🔄 **Stateful Agents** - Maintain state across interactions
2253
+
2254
+ ### Developer Tools
2255
+
2256
+ - ⚡ **Fast Context** - Rapid parallel code search (10-20x faster)
2257
+ - 📜 **Rules & Instructions** - Auto-discover CLAUDE.md, AGENTS.md, GEMINI.md
2258
+ - 🪝 **Hooks** - Pre/post operation hooks for custom logic
2259
+ - 📈 **Telemetry** - Track agent performance and usage
2260
+ - 📹 **Camera Integration** - Capture and analyse camera input
2261
+
2262
+ ### Other Features
2263
+
2264
+ - 🔄 **CrewAI & AG2 Integration** - Use CrewAI or AG2 (Formerly AutoGen) Framework
2265
+ - 💻 **Codebase Chat** - Chat with entire codebase
2266
+ - 🎨 **Interactive UIs** - Multiple interactive interfaces
2267
+ - 📄 **YAML Configuration** - YAML-based agent and workflow configuration
2268
+ - 🛠️ **Custom Tools** - Easy custom tool integration
2269
+ - 🔍 **Internet Search** - Multiple providers (Tavily, You.com, Exa, DuckDuckGo, Crawl4AI)
2270
+ - 🖼️ **VLM Support** - Vision Language Model support
2271
+ - 🎙️ **Voice Interaction** - Real-time voice interaction
2046
2272
 
2047
- Expose your Python functions as MCP tools for Claude Desktop, Cursor, and other MCP clients:
2273
+ ---
2048
2274
 
2049
- ```python
2050
- from praisonaiagents.mcp import ToolsMCPServer
2275
+ ## 🎓 Video Tutorials
2051
2276
 
2052
- def search_web(query: str, max_results: int = 5) -> dict:
2053
- """Search the web for information."""
2054
- return {"results": [f"Result for {query}"]}
2277
+ Learn PraisonAI through our comprehensive video series:
2055
2278
 
2056
- def calculate(expression: str) -> dict:
2057
- """Evaluate a mathematical expression."""
2058
- return {"result": eval(expression)}
2279
+ | Topic | Video |
2280
+ |-------|--------|
2281
+ | AI Agents with Self Reflection | [![Self Reflection](https://img.youtube.com/vi/vLXobEN2Vc8/0.jpg)](https://www.youtube.com/watch?v=vLXobEN2Vc8) |
2282
+ | Reasoning Data Generating Agent | [![Reasoning Data](https://img.youtube.com/vi/fUT332Y2zA8/0.jpg)](https://www.youtube.com/watch?v=fUT332Y2zA8) |
2283
+ | AI Agents with Reasoning | [![Reasoning](https://img.youtube.com/vi/KNDVWGN3TpM/0.jpg)](https://www.youtube.com/watch?v=KNDVWGN3TpM) |
2284
+ | Multimodal AI Agents | [![Multimodal](https://img.youtube.com/vi/hjAWmUT1qqY/0.jpg)](https://www.youtube.com/watch?v=hjAWmUT1qqY) |
2285
+ | AI Agents Workflow | [![Workflow](https://img.youtube.com/vi/yWTH44QPl2A/0.jpg)](https://www.youtube.com/watch?v=yWTH44QPl2A) |
2286
+ | Async AI Agents | [![Async](https://img.youtube.com/vi/VhVQfgo00LE/0.jpg)](https://www.youtube.com/watch?v=VhVQfgo00LE) |
2287
+ | Mini AI Agents | [![Mini](https://img.youtube.com/vi/OkvYp5aAGSg/0.jpg)](https://www.youtube.com/watch?v=OkvYp5aAGSg) |
2288
+ | AI Agents with Memory | [![Memory](https://img.youtube.com/vi/1hVfVxvPnnQ/0.jpg)](https://www.youtube.com/watch?v=1hVfVxvPnnQ) |
2289
+ | Repetitive Agents | [![Repetitive](https://img.youtube.com/vi/dAYGxsjDOPg/0.jpg)](https://www.youtube.com/watch?v=dAYGxsjDOPg) |
2290
+ | Introduction | [![Introduction](https://img.youtube.com/vi/Fn1lQjC0GO0/0.jpg)](https://www.youtube.com/watch?v=Fn1lQjC0GO0) |
2291
+ | Tools Overview | [![Tools Overview](https://img.youtube.com/vi/XaQRgRpV7jo/0.jpg)](https://www.youtube.com/watch?v=XaQRgRpV7jo) |
2292
+ | Custom Tools | [![Custom Tools](https://img.youtube.com/vi/JSU2Rndh06c/0.jpg)](https://www.youtube.com/watch?v=JSU2Rndh06c) |
2293
+ | Firecrawl Integration | [![Firecrawl](https://img.youtube.com/vi/UoqUDcLcOYo/0.jpg)](https://www.youtube.com/watch?v=UoqUDcLcOYo) |
2294
+ | User Interface | [![UI](https://img.youtube.com/vi/tg-ZjNl3OCg/0.jpg)](https://www.youtube.com/watch?v=tg-ZjNl3OCg) |
2295
+ | Crawl4AI Integration | [![Crawl4AI](https://img.youtube.com/vi/KAvuVUh0XU8/0.jpg)](https://www.youtube.com/watch?v=KAvuVUh0XU8) |
2296
+ | Chat Interface | [![Chat](https://img.youtube.com/vi/sw3uDqn2h1Y/0.jpg)](https://www.youtube.com/watch?v=sw3uDqn2h1Y) |
2297
+ | Code Interface | [![Code](https://img.youtube.com/vi/_5jQayO-MQY/0.jpg)](https://www.youtube.com/watch?v=_5jQayO-MQY) |
2298
+ | Mem0 Integration | [![Mem0](https://img.youtube.com/vi/KIGSgRxf1cY/0.jpg)](https://www.youtube.com/watch?v=KIGSgRxf1cY) |
2299
+ | Training | [![Training](https://img.youtube.com/vi/aLawE8kwCrI/0.jpg)](https://www.youtube.com/watch?v=aLawE8kwCrI) |
2300
+ | Realtime Voice Interface | [![Realtime](https://img.youtube.com/vi/frRHfevTCSw/0.jpg)](https://www.youtube.com/watch?v=frRHfevTCSw) |
2301
+ | Call Interface | [![Call](https://img.youtube.com/vi/m1cwrUG2iAk/0.jpg)](https://www.youtube.com/watch?v=m1cwrUG2iAk) |
2302
+ | Reasoning Extract Agents | [![Reasoning Extract](https://img.youtube.com/vi/2PPamsADjJA/0.jpg)](https://www.youtube.com/watch?v=2PPamsADjJA) |
2059
2303
 
2060
- # Create and run MCP server
2061
- server = ToolsMCPServer(name="my-tools")
2062
- server.register_tools([search_web, calculate])
2063
- server.run() # stdio for Claude Desktop
2064
- # server.run_sse(host="0.0.0.0", port=8080) # SSE for web clients
2065
- ```
2304
+ ---
2066
2305
 
2067
- ### MCP Features
2306
+ ## 👥 Contributing
2068
2307
 
2069
- | Feature | Description |
2070
- |---------|-------------|
2071
- | **Session Management** | Automatic `Mcp-Session-Id` handling |
2072
- | **Protocol Versioning** | `Mcp-Protocol-Version` header |
2073
- | **Resumability** | SSE stream recovery via `Last-Event-ID` |
2074
- | **Security** | Origin validation, DNS rebinding prevention |
2075
- | **WebSocket** | Auto-reconnect with exponential backoff |
2308
+ We welcome contributions from the community! Here's how you can contribute:
2076
2309
 
2310
+ 1. **Fork on GitHub** - Use the "Fork" button on the [repository page](https://github.com/MervinPraison/PraisonAI)
2311
+ 2. **Clone your fork** - `git clone https://github.com/yourusername/praisonAI.git`
2312
+ 3. **Create a branch** - `git checkout -b new-feature`
2313
+ 4. **Make changes and commit** - `git commit -am "Add some feature"`
2314
+ 5. **Push to your fork** - `git push origin new-feature`
2315
+ 6. **Submit a pull request** - Via GitHub's web interface
2316
+ 7. **Await feedback** - From project maintainers
2077
2317
 
2078
- ## Development:
2318
+ ---
2079
2319
 
2080
- Below is used for development only.
2320
+ ## 🔧 Development
2081
2321
 
2082
2322
  ### Using uv
2323
+
2083
2324
  ```bash
2084
2325
  # Install uv if you haven't already
2085
2326
  pip install uv
@@ -2105,110 +2346,13 @@ python src/praisonai/scripts/bump_and_release.py 2.2.99 --agents 0.0.169
2105
2346
  cd src/praisonai && uv publish
2106
2347
  ```
2107
2348
 
2108
- ## Contributing
2109
-
2110
- - Fork on GitHub: Use the "Fork" button on the repository page.
2111
- - Clone your fork: `git clone https://github.com/yourusername/praisonAI.git`
2112
- - Create a branch: `git checkout -b new-feature`
2113
- - Make changes and commit: `git commit -am "Add some feature"`
2114
- - Push to your fork: `git push origin new-feature`
2115
- - Submit a pull request via GitHub's web interface.
2116
- - Await feedback from project maintainers.
2117
-
2118
- ## Advanced Features
2119
-
2120
- **Research & Intelligence:**
2121
- - 🔬 **Deep Research Agents** (OpenAI & Gemini)
2122
- - 🔄 **Query Rewriter Agent** (HyDE, Step-back, Multi-query)
2123
- - 🌐 **Native Web Search** (OpenAI, Gemini, Anthropic, xAI, Perplexity)
2124
- - 📥 **Web Fetch** (Retrieve full content from URLs - Anthropic)
2125
- - 📝 **Prompt Expander Agent** (Expand short prompts into detailed instructions)
2126
-
2127
- **Memory & Caching:**
2128
- - 💾 **Prompt Caching** (Reduce costs & latency - OpenAI, Anthropic, Bedrock, Deepseek)
2129
- - 🧠 **Claude Memory Tool** (Persistent cross-conversation memory - Anthropic Beta)
2130
- - 💾 **File-Based Memory** (Zero-dependency persistent memory for all agents)
2131
- - 🔍 **Built-in Search Tools** (Tavily, You.com, Exa - web search, news, content extraction)
2132
-
2133
- **Planning & Workflows:**
2134
- - 📋 **Planning Mode** (Plan before execution - Agent & Multi-Agent)
2135
- - 🔧 **Planning Tools** (Research with tools during planning)
2136
- - 🧠 **Planning Reasoning** (Chain-of-thought planning)
2137
- - ⛓️ **Prompt Chaining** (Sequential prompt workflows with gates)
2138
- - 🔍 **Evaluator Optimiser** (Generate and optimize through iterative feedback)
2139
- - 👷 **Orchestrator Workers** (Distribute tasks among specialized workers)
2140
- - ⚡ **Parallelisation** (Execute tasks in parallel for improved performance)
2141
- - 🔁 **Repetitive Agents** (Handle repetitive tasks through automated loops)
2142
- - 🤖 **Autonomous Workflow** (Monitor, act, adapt based on environment feedback)
2143
-
2144
- **Agent Types:**
2145
- - 🖼️ **Image Generation Agent** (Create images from text descriptions)
2146
- - 📷 **Image to Text Agent** (Extract text and descriptions from images)
2147
- - 🎬 **Video Agent** (Analyze and process video content)
2148
- - 📊 **Data Analyst Agent** (Analyze data and generate insights)
2149
- - 💰 **Finance Agent** (Financial analysis and recommendations)
2150
- - 🛒 **Shopping Agent** (Price comparison and shopping assistance)
2151
- - ⭐ **Recommendation Agent** (Personalized recommendations)
2152
- - 📖 **Wikipedia Agent** (Search and extract Wikipedia information)
2153
- - 💻 **Programming Agent** (Code development and analysis)
2154
- - 📝 **Markdown Agent** (Generate and format Markdown content)
2155
- - 🔀 **Router Agent** (Dynamic task routing with cost optimization)
2156
-
2157
- **MCP Protocol:**
2158
- - 🔌 **MCP Transports** (stdio, Streamable HTTP, WebSocket, SSE - Protocol 2025-11-25)
2159
- - 🌐 **WebSocket MCP** (Real-time bidirectional connections with auto-reconnect)
2160
- - 🔐 **MCP Security** (Origin validation, DNS rebinding prevention, secure sessions)
2161
- - 🔄 **MCP Resumability** (SSE stream recovery via Last-Event-ID)
2162
-
2163
- **Safety & Control:**
2164
- - 🤝 **Agent Handoffs** (Transfer context between specialized agents)
2165
- - 🛡️ **Guardrails** (Input/output validation and safety checks)
2166
- - ✅ **Human Approval** (Require human confirmation for critical actions)
2167
- - 💬 **Sessions Management** (Isolated conversation contexts)
2168
- - 🔄 **Stateful Agents** (Maintain state across interactions)
2169
-
2170
- **Developer Tools:**
2171
- - ⚡ **Fast Context** (Rapid parallel code search - 10-20x faster than traditional methods)
2172
- - 📜 **Rules & Instructions** (Auto-discover CLAUDE.md, AGENTS.md, GEMINI.md)
2173
- - 🪝 **Hooks** (Pre/post operation hooks for custom logic)
2174
- - 📈 **Telemetry** (Track agent performance and usage)
2175
- - 📹 **Camera Integration** (Capture and analyze camera input)
2176
-
2177
- ## Other Features
2178
-
2179
- - 🔄 Use CrewAI or AG2 (Formerly AutoGen) Framework
2180
- - 💻 Chat with ENTIRE Codebase
2181
- - 🎨 Interactive UIs
2182
- - 📄 YAML-based Configuration
2183
- - 🛠️ Custom Tool Integration
2184
- - 🔍 Internet Search Capability (Tavily, You.com, Exa, DuckDuckGo, Crawl4AI)
2185
- - 🖼️ Vision Language Model (VLM) Support
2186
- - 🎙️ Real-time Voice Interaction
2187
-
2188
- ## Video Tutorials
2189
-
2190
- | Topic | Video |
2191
- |-------|--------|
2192
- | AI Agents with Self Reflection | [![Self Reflection](https://img.youtube.com/vi/vLXobEN2Vc8/0.jpg)](https://www.youtube.com/watch?v=vLXobEN2Vc8) |
2193
- | Reasoning Data Generating Agent | [![Reasoning Data](https://img.youtube.com/vi/fUT332Y2zA8/0.jpg)](https://www.youtube.com/watch?v=fUT332Y2zA8) |
2194
- | AI Agents with Reasoning | [![Reasoning](https://img.youtube.com/vi/KNDVWGN3TpM/0.jpg)](https://www.youtube.com/watch?v=KNDVWGN3TpM) |
2195
- | Multimodal AI Agents | [![Multimodal](https://img.youtube.com/vi/hjAWmUT1qqY/0.jpg)](https://www.youtube.com/watch?v=hjAWmUT1qqY) |
2196
- | AI Agents Workflow | [![Workflow](https://img.youtube.com/vi/yWTH44QPl2A/0.jpg)](https://www.youtube.com/watch?v=yWTH44QPl2A) |
2197
- | Async AI Agents | [![Async](https://img.youtube.com/vi/VhVQfgo00LE/0.jpg)](https://www.youtube.com/watch?v=VhVQfgo00LE) |
2198
- | Mini AI Agents | [![Mini](https://img.youtube.com/vi/OkvYp5aAGSg/0.jpg)](https://www.youtube.com/watch?v=OkvYp5aAGSg) |
2199
- | AI Agents with Memory | [![Memory](https://img.youtube.com/vi/1hVfVxvPnnQ/0.jpg)](https://www.youtube.com/watch?v=1hVfVxvPnnQ) |
2200
- | Repetitive Agents | [![Repetitive](https://img.youtube.com/vi/dAYGxsjDOPg/0.jpg)](https://www.youtube.com/watch?v=dAYGxsjDOPg) |
2201
- | Introduction | [![Introduction](https://img.youtube.com/vi/Fn1lQjC0GO0/0.jpg)](https://www.youtube.com/watch?v=Fn1lQjC0GO0) |
2202
- | Tools Overview | [![Tools Overview](https://img.youtube.com/vi/XaQRgRpV7jo/0.jpg)](https://www.youtube.com/watch?v=XaQRgRpV7jo) |
2203
- | Custom Tools | [![Custom Tools](https://img.youtube.com/vi/JSU2Rndh06c/0.jpg)](https://www.youtube.com/watch?v=JSU2Rndh06c) |
2204
- | Firecrawl Integration | [![Firecrawl](https://img.youtube.com/vi/UoqUDcLcOYo/0.jpg)](https://www.youtube.com/watch?v=UoqUDcLcOYo) |
2205
- | User Interface | [![UI](https://img.youtube.com/vi/tg-ZjNl3OCg/0.jpg)](https://www.youtube.com/watch?v=tg-ZjNl3OCg) |
2206
- | Crawl4AI Integration | [![Crawl4AI](https://img.youtube.com/vi/KAvuVUh0XU8/0.jpg)](https://www.youtube.com/watch?v=KAvuVUh0XU8) |
2207
- | Chat Interface | [![Chat](https://img.youtube.com/vi/sw3uDqn2h1Y/0.jpg)](https://www.youtube.com/watch?v=sw3uDqn2h1Y) |
2208
- | Code Interface | [![Code](https://img.youtube.com/vi/_5jQayO-MQY/0.jpg)](https://www.youtube.com/watch?v=_5jQayO-MQY) |
2209
- | Mem0 Integration | [![Mem0](https://img.youtube.com/vi/KIGSgRxf1cY/0.jpg)](https://www.youtube.com/watch?v=KIGSgRxf1cY) |
2210
- | Training | [![Training](https://img.youtube.com/vi/aLawE8kwCrI/0.jpg)](https://www.youtube.com/watch?v=aLawE8kwCrI) |
2211
- | Realtime Voice Interface | [![Realtime](https://img.youtube.com/vi/frRHfevTCSw/0.jpg)](https://www.youtube.com/watch?v=frRHfevTCSw) |
2212
- | Call Interface | [![Call](https://img.youtube.com/vi/m1cwrUG2iAk/0.jpg)](https://www.youtube.com/watch?v=m1cwrUG2iAk) |
2213
- | Reasoning Extract Agents | [![Reasoning Extract](https://img.youtube.com/vi/2PPamsADjJA/0.jpg)](https://www.youtube.com/watch?v=2PPamsADjJA) |
2349
+ ---
2214
2350
 
2351
+ <div align="center">
2352
+ <p><strong>Made with ❤️ by the PraisonAI Team</strong></p>
2353
+ <p>
2354
+ <a href="https://docs.praison.ai">Documentation</a> •
2355
+ <a href="https://github.com/MervinPraison/PraisonAI">GitHub</a> •
2356
+ <a href="https://github.com/MervinPraison/PraisonAI/issues">Issues</a>
2357
+ </p>
2358
+ </div>