/ examples / agents / orchestrator_example.yaml
orchestrator_example.yaml
 1  # A2A ADK Orchestrator Component Configurations
 2  #
 3  # This file demonstrates how to configure the A2A_ADK_HostComponent as an orchestrator.
 4  
 5  log:
 6    stdout_log_level: INFO
 7    log_file_level: DEBUG # Changed from INFO to DEBUG to capture ADK INFO logs
 8    log_file: orchestrator_example.log
 9  
10  # Shared SAM config
11  !include ../shared_config.yaml
12  
13  apps:
14    # Example 1: Custom OpenAI-Compatible LLM Agent
15    - name: orchestrator-agent_app
16      app_base_path: .
17      app_module: solace_agent_mesh.agent.sac.app # Use the custom App class in its new location
18      broker:
19        <<: *broker_connection # Points to shared_config.yaml
20  
21      # App Level Config
22      app_config:
23        namespace: ${NAMESPACE} # Your A2A topic namespace
24        supports_streaming: true # Host capability flag
25        agent_name: "OrchestratorAgent"
26        display_name: "Orchestrator"
27  
28        model: *planning_model
29        model_provider: 
30          - "planning"
31  
32        instruction: | 
33          You are the Orchestrator Agent within an AI agentic system. Your primary responsibilities are to:
34          1. Process tasks received from external sources via the system Gateway.
35          2. Analyze each task to determine the optimal execution strategy:
36             a. Single Agent Delegation: If the task can be fully addressed by a single peer agent (based on their declared capabilities/description), delegate the task to that agent.
37             b. Multi-Agent Coordination: If task completion requires a coordinated effort from multiple peer agents: first, devise a logical execution plan (detailing the sequence of agent invocations and any necessary data handoffs). Then, manage the execution of this plan, invoking each agent in the defined order.
38             c. Direct Execution: If the task is not suitable for delegation (neither to a single agent nor a multi-agent sequence) and falls within your own capabilities, execute the task yourself.
39  
40          Artifact Management Guidelines:
41          - If an artifact was created during the task (either by yourself or a delegated agent), you must use the `list_artifacts` tool to get the details of the created artifacts.
42          - You must then review the list of artifacts and return the ones that are important for the user by using the `signal_artifact_for_return` tool.
43          - Provide regular progress updates using `status_update` embed directives, especially before initiating any tool call.
44  
45        # session_service: *default_session_service # Points to shared_config.yaml
46        session_service:
47          type: "sql"
48          database_url: "${ORCHESTRATOR_DATABASE_URL, sqlite:///orchestrator-agent.db}"
49          default_behavior: "PERSISTENT"    
50        artifact_service: *default_artifact_service # Points to shared_config.yaml
51        identity_service:
52          type: local_file
53          file_path: ./tests/integration/test_data/people/dummy_employees.json
54          cache_ttl_seconds: 300  # 5 minutes for testing
55        artifact_handling_mode: "reference" # Embed artifacts created by *this* agent
56        enable_embed_resolution: true # Enable embed feature and instruction injection
57        enable_artifact_content_instruction: true # Enable instruction for late-stage embed
58        auto_summarization: *default_auto_summarization
59  
60        tools:
61          - tool_type: builtin-group
62            group_name: "artifact_management"
63          - tool_type: builtin-group
64            group_name: "data_analysis"
65          - tool_type: builtin
66            tool_name: "get_current_time"
67        stream_batching_threshold_bytes: 120
68        inject_system_purpose: true
69        inject_response_format: true
70        max_llm_calls_per_task: 25 # Limit the number of LLM calls per task to prevent excessive usage
71  
72        # Agent Card Definition (Simplified)
73        agent_card:
74          description: "The Orchestrator component. It manages tasks and coordinates multi-agent workflows."
75          defaultInputModes: ["text"] # Optional, Defaults to ["text"] if omitted
76          defaultOutputModes: ["text", "file"] # Indicate potential file output
77          skills:
78          - id: strategic_planning
79            name: Strategic Planning
80            description: Analyzes complex requests and creates structured execution plans, breaking down multi-step goals into logical sequences with clear checkpoints and progress tracking.
81  
82          - id: agent_coordination
83            name: Agent Coordination
84            description: Identifies the most suitable specialized agents for specific tasks and coordinates multi-agent workflows, managing data handoffs and execution sequences to achieve complex objectives efficiently.
85  
86          - id: artifact_management
87            name: Artifact Management
88            description: Creates, transforms, and manages various artifact types including documents, reports, and data files, with capabilities for content generation, formatting, embedding dynamic data, and applying sophisticated data transformations.
89          # documentationUrl: Optional
90          # provider: Optional
91        # Discovery & Communication
92        agent_card_publishing: { interval_seconds: 10 }
93        agent_discovery: { enabled: true } # Enable discovery and peer delegation instruction injection
94        inter_agent_communication:
95          allow_list: ["*"]
96          request_timeout_seconds: 2000