에이전트 클래스 비교

3개 모듈의 에이전트 클래스

클래스
모듈
파일
핵심 차이

TroubleshootingAgent (M1)

Module 1

module-1/agent_config/agent.py

기본 에이전트, 메모리 없음

TroubleshootingAgent (M3)

Module 3

module-2/agent_config/agent.py

메모리 통합, 에러 핸들링 강화

TroubleshootingAgent (M4-Conn)

Module 4

agentcore-connectivity-agent/agent_config/agent.py

동의 기반 워크플로우 특화

PerformanceAgent (M4)

Module 4

agentcore-performance-agent/agent_config/agent.py

성능 분석 특화, AWS 계정 자동 감지

HostAgent (M4)

Module 4

a2a-collaborator-agent/agent.py

멀티에이전트 오케스트레이션

공통 패턴

모든 에이전트는 동일한 4단계 초기화를 따릅니다:

class Agent:
    def __init__(self, bearer_token, memory_hook=None, bedrock_model_id, system_prompt=None):
        # 1. BedrockModel 초기화
        self.model = BedrockModel(model_id=bedrock_model_id)

        # 2. 시스템 프롬프트 설정
        self.system_prompt = system_prompt or default_prompt

        # 3. MCP 클라이언트로 Gateway 연결 + 도구 등록
        gateway_url = get_ssm_parameter("...")
        self.gateway_client = MCPClient(lambda: streamablehttp_client(gateway_url, ...))
        self.tools = [current_time] + self.gateway_client.list_tools_sync()

        # 4. Strands Agent 생성
        self.agent = Agent(model=self.model, system_prompt=..., tools=..., hooks=...)

Module 1 → Module 3 진화

항목
Module 1
Module 3

시스템 프롬프트

도구 사용 규칙만

+ MEMORY_INTEGRATION_RULES

hooks

[]

[memory_hook]

에러 처리

단순 yield f"Error: {e}"

지수 백오프 + 스로틀링 감지

stream()

기본 스트리밍

재시도 로직 (max_retries=3)

SSM 경로

/app/troubleshooting/...

동일

Module 1 → Module 4 진화 (Connectivity)

항목
Module 1
Module 4 Connectivity

시스템 프롬프트

일반 워크플로우

시나리오별 워크플로우 (check/fix/confirm)

동의 규칙

기본 수준

ABSOLUTE RULE, CONSENT VALIDATION CHECKLIST

Lambda 도구

3개 (dns, connectivity, cloudwatch)

2개 (dns, connectivity)

SSM 경로

/app/troubleshooting/...

/a2a/app/troubleshooting/...

HostAgent의 독특한 패턴

HostAgent는 다른 에이전트와 근본적으로 다릅니다:

항목
일반 에이전트
HostAgent

도구

Lambda 함수 (MCP)

send_message_tool (A2A)

MCP 클라이언트

있음

없음

Rate Limiting

없음

Semaphore(2) + Backoff

원격 연결

없음

A2ACardResolver

시스템 프롬프트

도구 사용법

라우팅 규칙

마지막 업데이트