Journi-MAS / agents /coordinator_agent.py
PLBot's picture
remove agenttext
a7a233f
from smolagents import CodeAgent
from typing import Dict, List, Optional, Any
class CoordinatorAgent(CodeAgent):
"""
The Coordinator Agent is the main orchestrator of the multi-agent system.
It's responsible for:
1. Understanding the user's request
2. Breaking it down into sub-tasks
3. Delegating tasks to appropriate specialized agents
4. Synthesizing responses into a coherent final answer
"""
def __init__(
self,
model,
tools=None,
managed_agents=None,
prompt_templates=None,
planning_interval=None,
max_steps=8,
verbosity_level=1,
name="Coordinator Agent",
description="Orchestrates the travel planning process across specialized agents",
**kwargs
):
super().__init__(
model=model,
tools=tools,
managed_agents=managed_agents,
prompt_templates=prompt_templates,
planning_interval=planning_interval,
max_steps=max_steps,
verbosity_level=verbosity_level,
name=name,
description=description,
**kwargs
)
# Add coordinator-specific initialization if needed
self.system_prompt_extension = """
You are the Coordinator Agent for Journi, a multi-agent travel assistant system.
Your role is to understand the user's travel request, break it down into sub-tasks,
and delegate these tasks to the appropriate specialized agents:
1. Information Retrieval Agent - For web search and visiting webpages
2. Language & Culture Agent - For translations and cultural information
3. Logistics Agent - For time, weather, visas, and currency
4. Recommendation Agent - For destination previews, accommodation options, and activity suggestions
After receiving responses from these agents, synthesize them into a comprehensive,
cohesive final answer that addresses all aspects of the user's request.
Remember to:
- Always start by analyzing what the user is asking for
- Identify which specialized agents can help with different parts of the request
- Delegate clear, specific tasks to each agent
- Combine the responses into a well-structured, unified answer
- Format the final response with appropriate sections and headings
"""
if prompt_templates and "system_prompt" in prompt_templates:
prompt_templates["system_prompt"] += self.system_prompt_extension