HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/PraisonAI/examples/general/prompt_chaining.py
from praisonaiagents.agent import Agent
from praisonaiagents.task import Task
from praisonaiagents.agents import PraisonAIAgents
from typing import List, Dict
import time

def get_time_check():
    current_time = int(time.time())
    result = "even" if current_time % 2 == 0 else "odd"
    print(f"Time check: {current_time} is {result}")
    return result

# Create agents for each step in the chain
agent1 = Agent(
    name="Time Checker",
    role="Time checker",
    goal="Check if the time is even or odd",
    instructions="Check if the time is even or odd",
    tools=[get_time_check]
)

agent2 = Agent(
    name="Advanced Analyzer",
    role="Advanced data analyzer",
    goal="Perform in-depth analysis of processed data",
    instructions="Analyze the processed data in detail"
)

agent3 = Agent(
    name="Final Processor",
    role="Final data processor",
    goal="Generate final output based on analysis",
    instructions="Create final output based on analyzed data"
)

# Create tasks for each step
initial_task = Task(
    name="time_check",
    description="Getting time check and checking if it is even or odd",
    expected_output="Getting time check and checking if it is even or odd",
    agent=agent1,
    is_start=True,  # Mark as the starting task
    task_type="decision",  # This task will make a decision
    next_tasks=["advanced_analysis"],  # Next task if condition passes
    condition={
        "even": ["advanced_analysis"],  # If passes, go to advanced analysis
        "odd": ""  # If fails, exit the chain
    }
)

analysis_task = Task(
    name="advanced_analysis",
    description="Perform advanced analysis on the processed data",
    expected_output="Analyzed data ready for final processing",
    agent=agent2,
    next_tasks=["final_processing"]
)

final_task = Task(
    name="final_processing",
    description="Generate final output",
    expected_output="Final processed result",
    agent=agent3
)

# Create the workflow manager
workflow = PraisonAIAgents(
    agents=[agent1, agent2, agent3],
    tasks=[initial_task, analysis_task, final_task],
    process="workflow",  # Use workflow process type
    verbose=True
)

# Run the workflow
results = workflow.start()

# Print results
print("\nWorkflow Results:")
for task_id, result in results["task_results"].items():
    if result:
        print(f"Task {task_id}: {result.raw}")