Release v4.0.0

This commit is contained in:
Mervin Praison committed 2026-01-30 17:41:19 +00:00
1 parent 956011a10d
commit c302853636
368 files changed
+1395 -1904

No files matched your search

+1 -1
View File
@@ -16,7 +16,7 @@ RUN mkdir -p /root/.praison
# Install Python packages (using latest versions)
RUN pip install --no-cache-dir \
praisonai_tools \
"praisonai>=3.12.3" \
"praisonai>=4.0.0" \
"praisonai[chat]" \
"embedchain[github,youtube]"
+1 -1
View File
@@ -20,7 +20,7 @@ RUN mkdir -p /root/.praison
# Install Python packages (using latest versions)
RUN pip install --no-cache-dir \
praisonai_tools \
"praisonai>=3.12.3" \
"praisonai>=4.0.0" \
"praisonai[ui]" \
"praisonai[chat]" \
"praisonai[realtime]" \
+1 -1
View File
@@ -16,7 +16,7 @@ RUN mkdir -p /root/.praison
# Install Python packages (using latest versions)
RUN pip install --no-cache-dir \
praisonai_tools \
"praisonai>=3.12.3" \
"praisonai>=4.0.0" \
"praisonai[ui]" \
"praisonai[crewai]"
@@ -1,6 +1,6 @@
"""Advanced Workflow with all consolidated params configured."""
from praisonaiagents import Agent
from praisonaiagents.workflows import Workflow, WorkflowStep
from praisonaiagents.workflows import Workflow, Task
from praisonaiagents.workflows.workflow_configs import (
WorkflowOutputConfig, WorkflowPlanningConfig, WorkflowMemoryConfig,
)
@@ -10,21 +10,21 @@ workflow = Workflow(
name="FullFeaturedWorkflow",
description="Demonstrates all agent-like consolidated params",
steps=[
WorkflowStep(
Task(
name="researcher",
action="Research: {{input}}",
agent=Agent(instructions="You are a researcher."),
knowledge=["research_docs/"], # Step-specific knowledge
web="duckduckgo", # Use DuckDuckGo for this step
),
WorkflowStep(
Task(
name="analyzer",
action="Analyze the research",
agent=Agent(instructions="You are an analyst."),
reflection="thorough", # Thorough reflection for analysis
guardrails="strict", # Strict validation
),
WorkflowStep(
Task(
name="writer",
action="Write the final report",
agent=Agent(instructions="You are a writer."),
+1 -1
View File
@@ -6,7 +6,7 @@ writer = Agent(instructions="You write content.")
editor = Agent(instructions="You edit content.")
# Multi-agent with consolidated params
agents = Agents(
agents = AgentManager(
agents=[writer, editor],
memory=True,
planning=True,
@@ -1,18 +1,18 @@
"""Basic example showing step-level override of workflow defaults."""
from praisonaiagents import Agent
from praisonaiagents.workflows import Workflow, WorkflowStep
from praisonaiagents.workflows import Workflow, Task
# Workflow with defaults
workflow = Workflow(
name="StepOverrideWorkflow",
steps=[
WorkflowStep(
Task(
name="step1",
action="Process with workflow defaults",
agent=Agent(instructions="You are a processor."),
# Uses workflow-level web=True (inherited)
),
WorkflowStep(
Task(
name="step2",
action="Process with step override",
agent=Agent(instructions="You are a processor."),
@@ -1,6 +1,6 @@
"""Basic workflow example with consolidated params."""
from praisonaiagents import Agent
from praisonaiagents.workflows import Workflow, WorkflowStep
from praisonaiagents.workflows import Workflow, Task
# Create agents
writer = Agent(instructions="You are a content writer.")
@@ -10,8 +10,8 @@ editor = Agent(instructions="You are an editor.")
workflow = Workflow(
name="Content Pipeline",
steps=[
WorkflowStep(name="write", agent=writer, action="Write about {{topic}}"),
WorkflowStep(name="edit", agent=editor, action="Edit the content", context=["write"]),
Task(name="write", agent=writer, action="Write about {{topic}}"),
Task(name="edit", agent=editor, action="Edit the content", context=["write"]),
],
output="verbose",
planning=True,
@@ -1,17 +1,17 @@
"""Basic Workflow with Agent-like consolidated params."""
from praisonaiagents import Agent
from praisonaiagents.workflows import Workflow, WorkflowStep
from praisonaiagents.workflows import Workflow, Task
# Workflow with agent-like params (knowledge, web, guardrails, reflection)
workflow = Workflow(
name="AgentLikeWorkflow",
steps=[
WorkflowStep(
Task(
name="researcher",
action="Research the topic: {{input}}",
agent=Agent(instructions="You are a researcher."),
),
WorkflowStep(
Task(
name="writer",
action="Write about the research findings",
agent=Agent(instructions="You are a writer."),
+2 -2
View File
@@ -189,8 +189,8 @@ def main():
print("-" * 40)
print("Auto-agents mode default: context=False (zero overhead)")
print("To enable for multi-agent workflows:")
print(" from praisonaiagents import Agents")
print(" agents = Agents(agents=[...], context=True)")
print(" from praisonaiagents import AgentManager")
print(" agents = AgentManager(agents=[...], context=True)")
print("")
print("Recommended config for long tasks:")
print(" context=ManagerConfig(")
+2 -2
View File
@@ -9,7 +9,7 @@ Agent-Centric Quick Start:
from praisonaiagents import Agent, Agents
from praisonaiagents.context import ManagerConfig
agents = Agents(
agents = AgentManager(
agents=[agent1, agent2],
context=ManagerConfig(policy="isolated"), # or "shared"
)
@@ -49,7 +49,7 @@ def agent_centric_example():
# Multi-agent setup with isolated context policy
# (each agent maintains its own context)
print("Created agents with context=True")
print("Use Agents(agents=[...], context=ManagerConfig(policy='isolated'))")
print("Use AgentManager(agents=[...], context=ManagerConfig(policy='isolated'))")
print("for multi-agent context isolation")
+2 -2
View File
@@ -156,7 +156,7 @@ def example_5_multi_agent():
print("Example 5: Multi-Agent Context Management")
print("=" * 60)
from praisonaiagents import Agents, Task
from praisonaiagents import AgentManager, Task
config = ManagerConfig(
auto_compact=True,
@@ -181,7 +181,7 @@ def example_5_multi_agent():
task2 = Task(description="Write a summary", agent=writer)
# Create multi-agent system with context management
agents = Agents(
agents = AgentManager(
agents=[researcher, writer],
tasks=[task1, task2],
context=config, # Shared context config
+3 -3
View File
@@ -103,7 +103,7 @@ task_with_llm_guardrail = Task(
# Run with GuardrailResult example
print("=== Running with GuardrailResult guardrail ===")
agents_gr = Agents(
agents_gr = AgentManager(
agents=[agent],
tasks=[task_with_guardrailresult]
)
@@ -113,7 +113,7 @@ agents_gr = Agents(
# Run with Tuple example
print("\n=== Running with Tuple[bool, Any] guardrail ===")
agents_tuple = Agents(
agents_tuple = AgentManager(
agents=[agent],
tasks=[task_with_tuple]
)
@@ -123,7 +123,7 @@ agents_tuple = Agents(
# Run with LLM guardrail example
print("\n=== Running with LLM-based guardrail ===")
agents_llm = Agents(
agents_llm = AgentManager(
agents=[agent],
tasks=[task_with_llm_guardrail]
)
+1 -1
View File
@@ -106,7 +106,7 @@ def example_multi_agent():
agent=writer
)
agents = Agents(
agents = AgentManager(
agents=[researcher, writer],
tasks=[task1, task2],
process="sequential",
@@ -54,7 +54,7 @@ execution_task = Task(
)
# Run hierarchical workflow
agents_system = Agents(
agents_system = AgentManager(
agents=[manager_agent, research_agent],
tasks=[planning_task, execution_task],
process="sequential", output="verbose"
+1 -1
View File
@@ -84,7 +84,7 @@ def demonstrate_code_agent():
)
# Create workflow
workflow = Agents(
workflow = AgentManager(
agents=[code_writer, code_reviewer, code_executor],
tasks=[write_task, review_task, execute_task],
process="sequential", output="verbose"
+1 -1
View File
@@ -36,7 +36,7 @@ task2 = Task(
)
# Create Agents instance
agents = Agents(
agents = AgentManager(
agents=[image_agent],
tasks=[task1, task2],
process="sequential",
@@ -36,7 +36,7 @@ task2 = Task(
)
# Create Agents instance
agents = Agents(
agents = AgentManager(
agents=[image_agent],
tasks=[task1, task2],
process="sequential",
+1 -1
View File
@@ -123,7 +123,7 @@ def solve_math_problem_workflow():
context=[solve_task]
)
workflow = Agents(
workflow = AgentManager(
agents=[problem_solver_agent, calculation_agent, math_tutor_agent],
tasks=[understand_task, solve_task, verify_task],
process="sequential", output="verbose"
@@ -48,7 +48,7 @@ def example_auto_routing():
)
# Run the tasks
agents = Agents(
agents = AgentManager(
agents=[research_agent],
tasks=[simple_task, moderate_task, complex_task],
process="sequential", output="verbose"
@@ -113,7 +113,7 @@ def example_cost_optimized_workflow():
)
# Run workflow
workflow = Agents(
workflow = AgentManager(
agents=[analyzer, writer],
tasks=[analysis_task, writing_task],
process="sequential", output="verbose"
@@ -135,7 +135,7 @@ def example_auto_agents_multi_provider():
from praisonaiagents.agents import AutoAgents
# Create AutoAgents that will automatically assign appropriate models
auto_agents = AutoAgents(
auto_agents = AutoAgentManager(
instructions="Create a market research report on electric vehicles. Include data analysis, competitor analysis, and future projections.",
max_agents=3,
llm="gpt-4o-mini", # Default model for agent generation
@@ -239,7 +239,7 @@ def example_custom_routing():
]
# Run tasks
agents = Agents(
agents = AgentManager(
agents=[coder],
tasks=tasks,
process="sequential", output="verbose"
+1 -1
View File
@@ -25,7 +25,7 @@ task1 = Task(
)
# Create Agents instance
agents = Agents(
agents = AgentManager(
agents=[video_agent],
tasks=[task1],
process="sequential",
+1 -1
View File
@@ -2,5 +2,5 @@ from praisonaiagents import Agent, Agents, Tools
research_agent = Agent(name="Research", instructions="You are a research agent to search internet about AI 2024", tools=[Tools.internet_search])
summarise_agent = Agent(name="Summarise", instructions="You are a summarize agent to summarise in points")
agents = Agents(agents=[research_agent, summarise_agent])
agents = AgentManager(agents=[research_agent, summarise_agent])
agents.launch(path="/agents", port=3030)
@@ -2,7 +2,7 @@ from praisonaiagents import Agent, Agents, Tools
research_agent = Agent(name="Research", instructions="You are a research agent to search internet about AI 2024", tools=[Tools.internet_search])
summarise_agent = Agent(name="Summarise", instructions="You are a summarize agent to summarise in points")
agents = Agents(agents=[research_agent, summarise_agent])
agents2 = Agents(agents=[research_agent])
agents = AgentManager(agents=[research_agent, summarise_agent])
agents2 = AgentManager(agents=[research_agent])
agents.launch(path="/agents", port=3030)
agents2.launch(path="/agents2", port=3030)
@@ -260,7 +260,7 @@ async def generate_market_research_report(job_id: str, config: MarketResearchCon
job_status[job_id]["message"] = "Setting up research workflow..."
# Create workflow
workflow = Agents(
workflow = AgentManager(
agents=list(agents.values()),
tasks=tasks,
process="sequential", output="minimal"
@@ -15,5 +15,5 @@ def internet_search_tool(query: str):
agent = Agent(name="SearchAgent", instructions="You Search the internet for information", tools=[internet_search_tool])
agent2 = Agent(name="SummariseAgent", instructions="You Summarise the information")
agents = Agents(name="MultiAgents", agents=[agent, agent2])
agents = AgentManager(name="MultiAgents", agents=[agent, agent2])
agents.launch(port=8080, protocol="mcp")
+1 -1
View File
@@ -58,7 +58,7 @@ def capture_and_analyze():
)
# Run analysis
agents = Agents(
agents = AgentManager(
agents=[vision_agent],
tasks=[task],
process="sequential",
+1 -1
View File
@@ -71,7 +71,7 @@ class ContinuousCameraMonitor:
images=[image_path]
)
agents = Agents(
agents = AgentManager(
agents=[self.vision_agent],
tasks=[task],
process="sequential",
+1 -1
View File
@@ -114,7 +114,7 @@ def analyze_with_multiple_agents():
)
# Run multi-agent analysis
agents = Agents(
agents = AgentManager(
agents=[security_agent, object_detector, scene_analyst],
tasks=[security_task, object_task, scene_task],
process="parallel", # Run all analyses in parallel
@@ -131,7 +131,7 @@ class CameraVideoAnalyzer:
images=[video_path] # PraisonAI supports video files in images parameter
)
agents = Agents(
agents = AgentManager(
agents=[self.video_agent],
tasks=[task],
process="sequential",
@@ -302,7 +302,7 @@ class ContextEngineeringWorkflow:
print("\n⚙️ Executing Context Engineering Workflow")
print("-" * 50)
agents_workflow = Agents(
agents_workflow = AgentManager(
agents=[
self.product_manager,
self.architect,
@@ -81,7 +81,7 @@ def method_1_simple_loop():
)
# Initialize the agents system
agents = Agents(
agents = AgentManager(
agents=[loop_agent],
tasks=[loop_task],
process="workflow",
@@ -145,7 +145,7 @@ def method_2_manual_csv():
)
# Initialize and run
agents = Agents(
agents = AgentManager(
agents=[csv_agent],
tasks=[csv_task],
process="sequential"
@@ -211,7 +211,7 @@ def method_3_url_processing():
)
# Initialize and run
agents = Agents(
agents = AgentManager(
agents=[url_agent],
tasks=[url_task],
process="sequential"
@@ -319,7 +319,7 @@ def method_4_advanced_processing():
)
# Initialize and run with sequential processing
agents = Agents(
agents = AgentManager(
agents=[validator_agent, processor_agent],
tasks=[validation_task, processing_task],
process="sequential" # Validation must complete before processing
@@ -35,7 +35,7 @@ knowledge_task = Task(
)
# Create and start the agents
agents = Agents(
agents = AgentManager(
agents=[knowledge_agent],
tasks=[knowledge_task],
process="sequential",
+1 -1
View File
@@ -29,7 +29,7 @@ rag_task = Task(
)
# Build Agents
agents = Agents(
agents = AgentManager(
agents=[rag_agent],
tasks=[rag_task],
user_id="user1"
@@ -100,7 +100,7 @@ def demonstrate_reasoning_extraction():
context=[problem_task]
)
workflow = Agents(
workflow = AgentManager(
agents=[cot_agent, reasoning_extractor],
tasks=[problem_task, extract_task],
process="sequential", output="verbose"
@@ -183,7 +183,7 @@ def advanced_reasoning_patterns():
context=[deductive_task, inductive_task, abductive_task]
)
workflow = Agents(
workflow = AgentManager(
agents=[cot_agent, reasoning_validator],
tasks=[deductive_task, inductive_task, abductive_task, validation_task],
process="sequential", output="verbose"
@@ -12,7 +12,7 @@ task = Task(
input_file="tasks.csv"
)
agents = Agents(
agents = AgentManager(
agents=[agent],
tasks=[task],
process="workflow",
+4 -4
View File
@@ -77,7 +77,7 @@ def conditional_routing_example():
agent=processor_agent
)
workflow = Agents(
workflow = AgentManager(
agents=[analyzer_agent, processor_agent],
tasks=[analysis_task, premium_task, standard_task, basic_task],
process="workflow", output="verbose"
@@ -109,7 +109,7 @@ def loop_pattern_example():
agent=validator_agent
)
workflow = Agents(
workflow = AgentManager(
agents=[processor_agent, validator_agent],
tasks=[process_task, finalize_task],
process="workflow", output="verbose"
@@ -183,7 +183,7 @@ def decision_tree_example():
all_tasks = [categorize_task, technical_task, business_task] + terminal_tasks
workflow = Agents(
workflow = AgentManager(
agents=[analyzer_agent, processor_agent],
tasks=all_tasks,
process="workflow", output="verbose"
@@ -269,7 +269,7 @@ def dynamic_routing_example():
agent=processor_agent
)
workflow = Agents(
workflow = AgentManager(
agents=[dynamic_router, processor_agent],
tasks=[route_task, escalate_task, automate_task, review_task, standard_task],
process="workflow", output="verbose"
@@ -162,7 +162,7 @@ def reflection_workflow_example():
context=[create_task, review_task]
)
workflow = Agents(
workflow = AgentManager(
agents=[creator_agent, reviewer_agent, polisher_agent],
tasks=[create_task, review_task, polish_task],
process="sequential", output="verbose"
@@ -59,7 +59,7 @@ def main():
)
# Step 4: Run the agents
agents = Agents(
agents = AgentManager(
agents=[url_agent],
tasks=[url_task],
process="workflow",
+1 -1
View File
@@ -128,7 +128,7 @@ upload_to_huggingface_task = Task(
)
# Initialize workflow
agents = Agents(
agents = AgentManager(
agents=[qa_generator, total_questions_evaluator, cot_generator, upload_to_huggingface],
tasks=[generate_task, evaluate_total_questions_task, generate_cot_task, upload_to_huggingface_task],
process="workflow",
+4 -4
View File
@@ -156,7 +156,7 @@ workflow_async_task = Task(
def run_sync_example():
"""Run synchronous example"""
display_instruction("\nRunning Synchronous Example...", console)
agents = Agents(
agents = AgentManager(
agents=[sync_agent],
tasks=[sync_task],
process="sequential"
@@ -167,7 +167,7 @@ def run_sync_example():
async def run_async_example():
"""Run asynchronous example"""
display_instruction("\nRunning Asynchronous Example...", console)
agents = Agents(
agents = AgentManager(
agents=[async_agent],
tasks=[async_task],
process="sequential"
@@ -178,7 +178,7 @@ async def run_async_example():
async def run_mixed_example():
"""Run mixed sync/async example"""
display_instruction("\nRunning Mixed Sync/Async Example...", console)
agents = Agents(
agents = AgentManager(
agents=[sync_agent, async_agent],
tasks=[sync_task, async_task],
process="sequential"
@@ -189,7 +189,7 @@ async def run_mixed_example():
async def run_workflow_example():
"""Run workflow example with both sync and async tasks"""
display_instruction("\nRunning Workflow Example...", console)
agents = Agents(
agents = AgentManager(
agents=[sync_agent, async_agent],
tasks=[workflow_sync_task, workflow_async_task],
process="workflow"
@@ -111,7 +111,7 @@ async def run_parallel_tasks():
)
# Create a single Agents instance with both agents
agents = Agents(
agents = AgentManager(
agents=[async_agent, summary_agent],
tasks=parallel_tasks + [summary_task],
process="sequential"
@@ -99,7 +99,7 @@ async_task = Task(
async def run_single_task():
"""Run single async task"""
print("\nRunning Single Async Task...")
agents = Agents(
agents = AgentManager(
agents=[async_agent],
tasks=[async_task],
process="sequential"
@@ -182,7 +182,7 @@ Present the summary in a clear, structured format with sections for findings, pa
)
# First run parallel search tasks
agents = Agents(
agents = AgentManager(
agents=[async_agent],
tasks=parallel_tasks, # Only run search tasks first
process="sequential"
@@ -206,7 +206,7 @@ Present the summary in a clear, structured format with sections for findings, pa
summary_task.context = completed_tasks
# Run summarization task with summary agent
summary_agents = Agents(
summary_agents = AgentManager(
agents=[summary_agent], # Use summary agent for synthesis
tasks=[summary_task],
process="sequential"
@@ -18,7 +18,7 @@ from praisonaiagents import AutoAgents
from praisonaiagents.tools import duckduckgo
# Basic usage - AutoAgents analyzes complexity and creates optimal agents
agents = AutoAgents(
agents = AutoAgentManager(
instructions="Search for information about AI Agents",
tools=[duckduckgo],
process="sequential", # or "hierarchical"
+1 -1
View File
@@ -86,7 +86,7 @@ feedback_task = Task(
)
# Create workflow manager
workflow = Agents(
workflow = AgentManager(
agents=[llm_caller, action_agent, feedback_agent],
tasks=[monitor_task, action_task, feedback_task],
process="workflow", output="verbose"
@@ -46,5 +46,5 @@ execution_agent_task = Task(
agent=execution_agent
)
agents = Agents(agents=[code_agent, execution_agent], tasks=[code_agent_task, execution_agent_task])
agents = AgentManager(agents=[code_agent, execution_agent], tasks=[code_agent_task, execution_agent_task])
agents.start()
@@ -53,7 +53,7 @@ evaluate_task = Task(
)
# Create workflow manager
workflow = Agents(
workflow = AgentManager(
agents=[generator, evaluator],
tasks=[generate_task, evaluate_task],
process="workflow", output="verbose"
+1 -1
View File
@@ -183,7 +183,7 @@ def main():
)
# Create and run agents manager
agents = Agents(
agents = AgentManager(
agents=[researcher, writer],
tasks=[task1, task2, task3, task4],
process="sequential",
@@ -141,7 +141,7 @@ validate_task = Task(
)
# 4. Workflow
agents = Agents(
agents = AgentManager(
agents=[data_agent],
tasks=[collect_task, validate_task],
process="workflow"
@@ -92,7 +92,7 @@ task4 = Task(
)
# Create and run agents manager
agents = Agents(
agents = AgentManager(
agents=[researcher, writer],
tasks=[task1, task2, task3, task4],
output="minimal",
@@ -109,7 +109,7 @@ def main():
]
# Create and run process
process = Agents(
process = AgentManager(
agents=[agent],
tasks=tasks, output="verbose"
)
@@ -166,7 +166,7 @@ async def async_demo():
expected_output="Async execution result"
)
process = Agents(
process = AgentManager(
agents=[agent],
tasks=[task], output="verbose"
)
+1 -1
View File
@@ -21,7 +21,7 @@ task = Task(
)
# Create and start the workflow
agents = Agents(
agents = AgentManager(
agents=[agent],
tasks=[task], output="verbose"
)
+2 -2
View File
@@ -101,7 +101,7 @@ def main():
)
# Initialize Agents with memory configuration
agents = Agents(
agents = AgentManager(
agents=[researcher, retriever],
tasks=[store_task, verify_task, query_task, query_both_task], # Use same verbose level as memory
memory={
@@ -115,7 +115,7 @@ def main():
}
)
# agents = Agents(
# agents = AgentManager(
# agents=[researcher, retriever],
# tasks=[store_task, verify_task, query_task, query_both_task],
# # Use same verbose level as memory
+1 -1
View File
@@ -54,7 +54,7 @@ blog_task = Task(
agent=blog_agent
)
agents = Agents(
agents = AgentManager(
agents=[fact_agent, research_agent, blog_agent],
tasks=[fact_task, research_task, research_task2, research_task3, research_task4, blog_task],
memory=True
@@ -2,5 +2,5 @@ from praisonaiagents import Agent, Agents, Tools
research_agent = Agent(instructions="You are a research agent to search internet about AI 2024", tools=[Tools.internet_search])
summarise_agent = Agent(instructions="You are a summarize agent to summarise in points")
agents = Agents(agents=[research_agent, summarise_agent])
agents = AgentManager(agents=[research_agent, summarise_agent])
agents.start()
+1 -1
View File
@@ -43,7 +43,7 @@ task3 = Task(
)
# Create Agents instance
agents = Agents(
agents = AgentManager(
agents=[vision_agent],
tasks=[task1, task2, task3],
process="sequential"
@@ -93,7 +93,7 @@ synthesize_task = Task(
)
# Create workflow manager
workflow = Agents(
workflow = AgentManager(
agents=[router, worker1, worker2, worker3, synthesizer],
tasks=[router_task, worker1_task, worker2_task, worker3_task, synthesize_task],
process="workflow", output="verbose"
+1 -1
View File
@@ -75,7 +75,7 @@ aggregate_task = Task(
async def main():
# Create workflow manager
workflow = Agents(
workflow = AgentManager(
agents=[agent1, agent2, agent3, aggregator],
tasks=[task1, task2, task3, aggregate_task],
process="workflow"
+1 -1
View File
@@ -64,7 +64,7 @@ final_task = Task(
)
# Create the workflow manager
workflow = Agents(
workflow = AgentManager(
agents=[agent1, agent2, agent3],
tasks=[initial_task, analysis_task, final_task],
process="workflow", # Use workflow process type
@@ -44,7 +44,7 @@ analysis_task = Task(
)
# Initialize and run agents
agents = Agents(
agents = AgentManager(
agents=[researcher, analyst],
tasks=[research_task, analysis_task],
process="sequential",
+1 -1
View File
@@ -106,7 +106,7 @@ task = Task(
)
# Create and start the workflow
agents = Agents(
agents = AgentManager(
agents=[agent],
tasks=[task], output="verbose"
)
+1 -1
View File
@@ -22,7 +22,7 @@ news_task = Task(
# Run agent
agents = Agents(
agents = AgentManager(
agents=[news_agent],
tasks=[news_task],
process="sequential"
@@ -64,7 +64,7 @@ validate_task = Task(
)
# 4. AI Agents Workflow
agents = Agents(
agents = AgentManager(
agents=[data_agent],
tasks=[collect_task, validate_task],
process="workflow"
@@ -225,7 +225,7 @@ process_task = Task(
)
# Create Agents instance with workflow process
workflow = Agents(
workflow = AgentManager(
agents=[data_agent, process_agent],
tasks=[collect_task, validate_task, process_task],
process="workflow"
@@ -181,7 +181,7 @@ llm_guardrail_task = Task(
)
# Execute tasks with guardrails
agents = Agents(
agents = AgentManager(
agents=[email_agent, content_agent, business_agent, research_agent, llm_guardrail_agent],
tasks=[email_task, content_task, business_task, research_task, llm_guardrail_task], output="verbose"
)
@@ -137,7 +137,7 @@ class DynamicAgentSystem:
# Run the system
print(f"\n🚀 Starting {process} analysis for '{inputs['topic']}'...")
praison_agents = Agents(
praison_agents = AgentManager(
agents=agents,
tasks=tasks,
process=process,
@@ -46,7 +46,7 @@ print(f" - Max Retries: {max_retries}")
print("\n" + "="*50 + "\n")
# Run agents
agents = Agents(agents=[agent], tasks=[task])
agents = AgentManager(agents=[agent], tasks=[task])
result = agents.start()
# Save to environment-specified location if provided
@@ -47,7 +47,7 @@ analyze_task = Task(
)
# Run sequential process
agents = Agents(
agents = AgentManager(
agents=[search_agent, analysis_agent],
tasks=[search_task, analyze_task],
process="sequential"
+1 -1
View File
@@ -26,5 +26,5 @@ task = Task(
)
# Run
agents = Agents(agents=[agent], tasks=[task])
agents = AgentManager(agents=[agent], tasks=[task])
agents.start()
+1 -1
View File
@@ -125,7 +125,7 @@ if st.button("🚀 Submit", type="primary", use_container_width=True):
)
# Run agents
agents = Agents(
agents = AgentManager(
agents=[agent],
tasks=[task],
process=process_type
@@ -12,6 +12,6 @@ whatsapp_agent = Agent(
tools=MCP("python /Users/praison/whatsapp-mcp/whatsapp-mcp-server/main.py")
)
agents = Agents(agents=[airbnb_agent, whatsapp_agent])
agents = AgentManager(agents=[airbnb_agent, whatsapp_agent])
agents.start()
+1 -1
View File
@@ -14,7 +14,7 @@ def search_airbnb(query):
tools=MCP("python /Users/praison/whatsapp-mcp/whatsapp-mcp-server/main.py")
)
agents = Agents(agents=[airbnb_agent, whatsapp_agent])
agents = AgentManager(agents=[airbnb_agent, whatsapp_agent])
result = agents.start()
return f"## Airbnb Search Results\n\n{result}"
@@ -57,7 +57,7 @@ query_task = Task(
)
# Run with graph memory integration
agents_system = Agents(
agents_system = AgentManager(
agents=[knowledge_agent],
tasks=[build_task, query_task],
memory=True,
@@ -58,7 +58,7 @@ search_task = Task(
)
# Run with memory optimization
agents_system = Agents(
agents_system = AgentManager(
agents=[research_agent],
tasks=[build_memory_task, search_task],
memory=True,
@@ -82,7 +82,7 @@ def main():
# Configure with Gemini embeddings
# Option 1: Using stable text-embedding-004
agents = Agents(
agents = AgentManager(
agents=[researcher, retriever],
tasks=[store_task, retrieve_task],
memory={
@@ -97,7 +97,7 @@ def main():
)
# Alternative: Using experimental model with advanced features
# agents = Agents(
# agents = AgentManager(
# agents=[researcher, retriever],
# tasks=[store_task, retrieve_task],
#
+1 -1
View File
@@ -149,7 +149,7 @@ def main():
)
# Run the multi-agent system with graph memory
agents_system = Agents(
agents_system = AgentManager(
agents=[researcher],
tasks=[build_knowledge_task, query_knowledge_task, expand_knowledge_task],
memory=True,
@@ -186,7 +186,7 @@ def main():
print("🚀 Starting Comprehensive MongoDB Business System...")
print("=" * 60)
business_system = Agents(
business_system = AgentManager(
agents=[data_manager, knowledge_curator, business_analyst, customer_service],
tasks=business_tasks,
memory=True,
@@ -122,7 +122,7 @@ def main():
print("🚀 Starting MongoDB Knowledge Management System...")
print("=" * 60)
knowledge_system = Agents(
knowledge_system = AgentManager(
agents=[research_agent, knowledge_agent],
tasks=knowledge_tasks,
memory=True, output="verbose"
@@ -90,7 +90,7 @@ def main():
print("🚀 Starting MongoDB Memory Research System...")
print("=" * 60)
research_system = Agents(
research_system = AgentManager(
agents=[research_agent],
tasks=research_tasks,
memory=True,
@@ -111,7 +111,7 @@ def main():
print("🚀 Starting MongoDB Tools Demo System...")
print("=" * 60)
mongodb_system = Agents(
mongodb_system = AgentManager(
agents=[db_agent, analysis_agent],
tasks=mongodb_tasks, output="verbose"
)
@@ -101,7 +101,7 @@ def main():
with track_api_call("multi_agent_workflow"):
print("\n🚀 Starting multi-agent workflow...")
workflow = Agents(
workflow = AgentManager(
agents=[researcher, analyst, writer],
tasks=[research_task, analysis_task, report_task],
process="sequential", output="verbose"
@@ -139,7 +139,7 @@ def simulate_complex_workflow():
# Execute workflow
with track_api_call("complex_workflow_execution"):
workflow = Agents(
workflow = AgentManager(
agents=[planner, executor, reviewer],
tasks=[planning_task, execution_task, review_task],
process="sequential", output="minimal"
@@ -213,7 +213,7 @@ def execute_monitored_task(agent, task_description):
agent=agent
)
agents_workflow = Agents(
agents_workflow = AgentManager(
agents=[agent],
tasks=[task], output="minimal"
)
@@ -203,7 +203,7 @@ for request in sample_requests:
)
# Execute the workflow with conditional routing
workflow_agents = Agents(
workflow_agents = AgentManager(
agents=[
intake_agent, specialist_agent, review_agent,
coordinator_agent
@@ -83,7 +83,7 @@ coordination_task = Task(
)
# Create Hierarchical Process
agents = Agents(
agents = AgentManager(
agents=[manager, researcher, data_analyst, writer],
tasks=[research_task, analysis_task, writing_task, coordination_task],
process="hierarchical", # Hierarchical process type
@@ -23,7 +23,7 @@ task = Task(
)
# Run
agents = Agents(agents=[writer], tasks=[task])
agents = AgentManager(agents=[writer], tasks=[task])
result = agents.start()
print("✅ Task completed!")
@@ -62,7 +62,7 @@ research_task1 = Task(
)
# Create agents with session
agents_session1 = Agents(
agents_session1 = AgentManager(
agents=[research_agent],
tasks=[research_task1],
session=session1, output="verbose"
@@ -101,7 +101,7 @@ analysis_task = Task(
context_variables={"previous_research": str(result1)}
)
agents_session2 = Agents(
agents_session2 = AgentManager(
agents=[analysis_agent],
tasks=[analysis_task],
session=session2, output="verbose"
@@ -151,7 +151,7 @@ synthesis_task = Task(
}
)
agents_recovery = Agents(
agents_recovery = AgentManager(
agents=[synthesis_agent],
tasks=[synthesis_task],
session=recovery_session, output="verbose"
@@ -201,7 +201,7 @@ review_task = Task(
}
)
agents_reviewer = Agents(
agents_reviewer = AgentManager(
agents=[review_agent],
tasks=[review_task],
session=reviewer_session, output="verbose"
@@ -144,7 +144,7 @@ task4 = Task(
)
# Create workflow (global variable for state access in tools)
workflow = Agents(
workflow = AgentManager(
agents=[project_manager, developer, finance_manager],
tasks=[task1, task2, task3, task4],
process="sequential"
@@ -265,7 +265,7 @@ task6 = Task(
)
# Create workflow (global variable for state access in tools)
workflow = Agents(
workflow = AgentManager(
agents=[progress_tracker, data_processor, error_handler, config_manager],
tasks=[task1, task2, task3, task4, task5, task6],
process="sequential"
@@ -366,7 +366,7 @@ report_task = Task(
)
# Create workflow
workflow = Agents(
workflow = AgentManager(
agents=[finance_agent, cost_manager, development_agent, performance_agent, report_agent],
tasks=[
budget_decision_task,
@@ -228,7 +228,7 @@ initial_tasks = [
]
# Create workflow with memory enabled
workflow = Agents(
workflow = AgentManager(
agents=[data_processor, status_monitor, task_runner, report_generator],
tasks=initial_tasks,
process="sequential",
@@ -300,7 +300,7 @@ resumed_tasks = [
]
# Create new workflow instance for resumed session
resumed_workflow = Agents(
resumed_workflow = AgentManager(
agents=[data_processor, status_monitor, task_runner, report_generator],
tasks=resumed_tasks,
process="sequential",
@@ -355,7 +355,7 @@ report_task = Task(
)
# Create workflow
workflow = Agents(
workflow = AgentManager(
agents=[batch_processor, data_collector, validator, reporter],
tasks=[batch_loop_task, retry_loop_task, pagination_loop_task, validation_loop_task, report_task],
process="sequential"
@@ -540,7 +540,7 @@ tasks = [
]
# Create workflow
workflow = Agents(
workflow = AgentManager(
agents=[state_manager, cache_manager, metrics_calculator, report_generator],
tasks=tasks,
process="sequential"
@@ -63,7 +63,7 @@ finalize_task = Task(
)
# Run with state management
agents_system = Agents(
agents_system = AgentManager(
agents=[state_agent],
tasks=[init_task, continue_task, finalize_task],
memory=True, output="verbose"
@@ -6,7 +6,7 @@ Demonstrates advanced state management in multi-agent workflows with
persistence, conditional execution, and cross-task communication.
"""
from praisonaiagents import Agents, Agent, Task
from praisonaiagents import AgentManager, Agent, Task
def research_tool(topic: str, num_sources: int = 5):
"""Simulated research tool that updates workflow state"""
@@ -85,7 +85,7 @@ def main():
)
# Create stateful workflow
workflow = Agents(
workflow = AgentManager(
agents=[researcher, analyzer, writer],
tasks=[research_task, analysis_task, report_task],
memory=True,
@@ -195,7 +195,7 @@ final_report = Task(
)
# Create workflow with conditional execution
workflow = Agents(
workflow = AgentManager(
agents=[research_agent, quality_checker, analyst, decision_maker, report_writer],
tasks=[
initial_research,
@@ -139,7 +139,7 @@ for i, request in enumerate(customer_requests):
try:
# Customer service response
with telemetry.trace_agent_execution("CustomerServiceAgent") as agent_trace:
agents = Agents(
agents = AgentManager(
agents=[customer_service_agent],
tasks=[customer_task],
output="minimal" # Reduce verbosity for telemetry demo
@@ -162,7 +162,7 @@ for i, request in enumerate(customer_requests):
context=[customer_task]
)
tech_agents = Agents(
tech_agents = AgentManager(
agents=[technical_support_agent],
tasks=[tech_task], output="minimal"
)
@@ -182,7 +182,7 @@ for i, request in enumerate(customer_requests):
agent=quality_assurance_agent
)
qa_agents = Agents(
qa_agents = AgentManager(
agents=[quality_assurance_agent],
tasks=[qa_task], output="minimal"
)
@@ -4,7 +4,7 @@ This example demonstrates the simplest way to enable token metrics
tracking using just Agent(metrics=True). The token usage summary
will be automatically displayed when tasks complete!
"""
from praisonaiagents import Agents, Agent, Task
from praisonaiagents import AgentManager, Agent, Task
def main():
# Create a simple agent with metrics=True - that's it!
@@ -25,7 +25,7 @@ def main():
)
# Initialize the agents system
agents = Agents(
agents = AgentManager(
agents=[research_agent],
tasks=[research_task], output="verbose"
)
@@ -4,7 +4,7 @@ This example shows how to track token usage across multiple agents
with the simplified Agent(metrics=True) approach. Metrics are
automatically displayed when any agent has metrics enabled!
"""
from praisonaiagents import Agents, Agent, Task
from praisonaiagents import AgentManager, Agent, Task
def main():
# Create multiple agents - just add metrics=True to enable tracking
@@ -41,7 +41,7 @@ def main():
)
# Initialize the agents system
agents = Agents(
agents = AgentManager(
agents=[analyst_agent, writer_agent],
tasks=[analysis_task, writing_task], output="verbose"
)
@@ -4,7 +4,7 @@ This example demonstrates automatic token metrics and cost tracking
using just Agent(metrics=True). All tracking and display is automatic!
For custom cost calculations, you can still access the detailed reports.
"""
from praisonaiagents import Agents, Agent, Task
from praisonaiagents import AgentManager, Agent, Task
def main():
# Create agents with metrics=True for automatic cost tracking
@@ -56,7 +56,7 @@ def main():
)
# Initialize and run
agents = Agents(
agents = AgentManager(
agents=[research_agent, strategy_agent],
tasks=[research_task, strategy_task], output="verbose"
)
@@ -6,7 +6,7 @@ telemetry system for comprehensive monitoring and analytics.
Demonstrates privacy-first tracking and export capabilities.
"""
from praisonaiagents import Agents, Agent, Task
from praisonaiagents import AgentManager, Agent, Task
import json
def export_metrics_to_file(agents, filename="token_metrics_export.json"):
@@ -126,7 +126,7 @@ def main():
)
# Initialize with telemetry awareness
agents = Agents(
agents = AgentManager(
agents=[data_agent, monitor_agent],
tasks=[processing_task, monitoring_task], output="verbose"
)
@@ -8,7 +8,7 @@ This example demonstrates advanced token tracking features including:
- Token budget enforcement
"""
from praisonaiagents import Agents, Agent, Task
from praisonaiagents import AgentManager, Agent, Task
import time
class TokenBudgetManager:
@@ -197,7 +197,7 @@ def main():
)
# Initialize agents system
agents = Agents(
agents = AgentManager(
agents=[researcher_agent, summarizer_agent, optimizer_agent],
tasks=[research_task, summary_task, optimization_task], output="verbose"
)
Loaded 100 of 368 files, more files were not shown because too many files have changed in this diff. Show more