AgenticAI Framework provides powerful orchestration capabilities for building sophisticated multi-agent systems. Create teams, define workflows, and coordinate agents seamlessly.
Enterprise Orchestration
The framework includes 12 workflow & orchestration modules for enterprise deployments including workflow engine, state machine, saga patterns, and job queue management.
importlogginglogger=logging.getLogger(__name__)fromagenticaiframeworkimportAgent,AgentConfig,Team# Create specialized agentsresearcher=Agent(config=AgentConfig(name="researcher",role="Research Analyst",goal="Gather comprehensive information on topics",tools=["web_search","wikipedia"]))writer=Agent(config=AgentConfig(name="writer",role="Content Writer",goal="Transform research into engaging content",tools=["text_editor"]))editor=Agent(config=AgentConfig(name="editor",role="Quality Editor",goal="Ensure content is polished and error-free",tools=["grammar_check","readability_analyzer"]))# Create a teamteam=Team(name="content_team",agents=[researcher,writer,editor],description="A team for creating high-quality content")# Execute team taskresult=team.execute("Create an article about quantum computing")logger.info(result.final_output)
fromagenticaiframeworkimportWorkflowManager# Parallel: all analysts work at the same timeteam=Team(name="multi_analyst",agents=[market_analyst,tech_analyst,competitor_analyst],workflow=WorkflowManager.parallel())result=team.execute("Analyze the AI industry")# All three analysts work simultaneously# Results are aggregated at the end
fromagenticaiframeworkimportWorkflowManager,WorkflowStepworkflow=WorkflowManager.custom([# Step 1: Research in parallelWorkflowStep(name="research",agents=["researcher_1","researcher_2"],execution="parallel"),# Step 2: Aggregate resultsWorkflowStep(name="aggregate",agents=["synthesizer"],execution="sequential",depends_on=["research"]),# Step 3: Write and review in parallelWorkflowStep(name="content",agents=["writer","reviewer"],execution="parallel",depends_on=["aggregate"]),# Step 4: Final editWorkflowStep(name="finalize",agents=["editor"],execution="sequential",depends_on=["content"])])team=Team(name="content_factory",agents=[researcher_1,researcher_2,synthesizer,writer,reviewer,editor],workflow=workflow)
fromagenticaiframeworkimportTeam,Agent,AgentConfig# Create leader agentleader=Agent(config=AgentConfig(name="project_manager",role="Project Manager",goal="Coordinate team members and synthesize results",is_leader=True))# Create team membersdevelopers=[Agent(config=AgentConfig(name=f"dev_{i}",role="Developer"))foriinrange(3)]# Hierarchical teamteam=Team(name="dev_team",leader=leader,agents=developers,workflow=WorkflowManager.hierarchical())# Leader delegates and coordinatesresult=team.execute("Build a REST API for user management")
fromagenticaiframeworkimportTeam,TeamHierarchy# Create department leadsresearch_lead=Agent(config=AgentConfig(name="research_lead",role="Research Lead"))dev_lead=Agent(config=AgentConfig(name="dev_lead",role="Development Lead"))qa_lead=Agent(config=AgentConfig(name="qa_lead",role="QA Lead"))# Create sub-teamsresearch_team=Team(name="research",leader=research_lead,agents=[researcher_1,researcher_2])dev_team=Team(name="development",leader=dev_lead,agents=[dev_1,dev_2,dev_3])qa_team=Team(name="qa",leader=qa_lead,agents=[qa_1,qa_2])# Create executive leadercto=Agent(config=AgentConfig(name="cto",role="CTO"))# Build hierarchyhierarchy=TeamHierarchy(leader=cto,sub_teams=[research_team,dev_team,qa_team])result=hierarchy.execute("Develop a new AI feature")
fromagenticaiframeworkimportRouter,RoutingStrategy# Define agent skillsrouter=Router(strategy=RoutingStrategy.SKILL_BASED,agents={"python_expert":["python","django","flask"],"js_expert":["javascript","react","nodejs"],"data_scientist":["ml","data_analysis","statistics"],"devops_engineer":["docker","kubernetes","ci/cd"]})# Route task to appropriate agenttask="Create a React component for data visualization"selected_agent=router.route(task)# Returns: "js_expert"
router=Router(strategy=RoutingStrategy.LOAD_BALANCED,agents=[agent_1,agent_2,agent_3],max_concurrent_per_agent=5)# Routes to least busy agentagent=router.route(task)
router=Router(strategy=RoutingStrategy.QUALITY_BASED,agents=agents,performance_history=True# Uses historical performance data)# Routes to agent with best track record for similar tasksagent=router.route(task,task_type="code_review")
# Request help from another agentresponse=messenger.request(from_agent="writer",to_agent="researcher",request={"type":"clarification","question":"Can you provide more details on point 3?"},timeout_seconds=60)
fromagenticaiframeworkimportSharedContext# Create shared context for teamshared=SharedContext(team_id="content_team")# Agent adds to shared contextshared.set("research_findings",findings,agent="researcher")# Another agent reads from shared contextfindings=shared.get("research_findings")# Watch for updatesshared.watch("research_findings",callback=on_update)
fromagenticaiframeworkimportDelegationManagerdelegation=DelegationManager(team=team)# Leader delegates based on capabilitiesdelegation.delegate(task="Analyze market trends and write report",strategy="capability_match")# Automatically breaks down task and assigns to appropriate agents
# AI-powered synthesisaggregator=ResultAggregator(strategy=AggregationStrategy.SYNTHESIZE,synthesizer_agent=synthesizer)# Result: Synthesized output using AI
fromagenticaiframeworkimportCircuitBreaker# Add circuit breaker to agentagent=Agent(config=config,circuit_breaker=CircuitBreaker(failure_threshold=5,reset_timeout_seconds=60))# Circuit opens after 5 failures, resets after 60 seconds
# Always include fallback agentsteam=Team(name="robust_team",agents=[primary_agent],fallback_agents=[backup_agent_1,backup_agent_2],error_handler=TeamErrorHandler(on_agent_failure="delegate"))