Team D: 라우팅 로직

분석 대상

Collaborator Agent의 시스템 프롬프트 (라우팅 규칙), send_message_tool 구현

라우팅 시스템 프롬프트 핵심

def get_default_system_prompt(self):
    return f"""
    Role: Lead NetOps Orchestrator

    Specialist Agents:
    1. Connectivity_Troubleshooting_Agent — DNS, 연결성, 보안 그룹
    2. Performance_Agent — Flow Monitor, 트래픽 미러링, TCP 분석

    Route to Connectivity_Troubleshooting_Agent for:
    - Connectivity checks between hosts
    - DNS resolution issues
    - Security group and firewall diagnostics
    - Cannot connect or cannot reach errors

    Route to Performance_Agent for:
    - Network performance analysis
    - VPC Flow Logs monitoring
    - Traffic mirroring and PCAP analysis
    - TCP retransmission issues
    - Slow connection or high latency

    Agent Naming: Always use exact names:
    - "Connectivity_Troubleshooting_Agent"
    - "Performance_Agent"

    <Available Agents> {available_agents} </Available Agents>
    """

라우팅 결정 과정

send_message_tool 구현 상세

키워드 → 에이전트 매핑

사용자 키워드
라우팅 대상
근거

"check connectivity"

Connectivity Agent

"Connectivity checks between hosts"

"DNS resolution"

Connectivity Agent

"DNS resolution issues"

"cannot connect"

Connectivity Agent

"Cannot connect errors"

"retransmission"

Performance Agent

"TCP retransmission issues"

"slow connection"

Performance Agent

"Slow connection or high latency"

"traffic mirroring"

Performance Agent

"Traffic mirroring and PCAP"

"flow monitor"

Performance Agent

"VPC Flow Logs monitoring"

결과 전달 규칙

에러 처리

토론 질문

  1. LLM이 잘못된 에이전트로 라우팅하면 어떻게 되나요? 복구 메커니즘이 있나요?

  2. 시스템 프롬프트의 키워드 매핑만으로 충분한가요? Agent Card의 tags를 활용할 수는 없나요?

  3. send_message_tool이 하나의 도구인 이유는? 에이전트별 도구를 만들 수도 있지 않나요?

  4. completed_requests의 키가 hash(task)를 사용하는데, 해시 충돌 가능성은?

마지막 업데이트