Team B: A2A Executor 패턴

분석 대상

a2a-connectivity-agent/agent_executer.py — ConnectivityTroubleshootingAgentCoreExecutor

Executor 클래스 구조

class ConnectivityTroubleshootingAgentCoreExecutor(AgentExecutor):
    """A2A 프로토콜 → AgentCore Runtime 브릿지"""

    def __init__(self, *, base_url, agent_arn, agent_session_id,
                 user_pool_id, client_id, client_secret, scope,
                 discovery_url, identity_provider, request_timeout_s=900):
        self.agent_arn = agent_arn

        # HTTP/2 클라이언트 (15분 타임아웃)
        self.http = httpx.Client(
            timeout=httpx.Timeout(connect=10, read=900, write=30, pool=10),
            http2=True,
            follow_redirects=True
        )

        # OAuth 토큰 캐시
        self._token_cache = _OAuthTokenCache()

OAuth 토큰 캐시

AgentCore Runtime URL 구성

URL 예시:

HTTP/2 스트리밍 호출

execute: A2A 요청 처리 전체 흐름

전체 호출 흐름

토론 질문

  1. request_timeout_s=900 (15분)은 왜 이렇게 긴가요?

  2. OAuth 토큰 만료 30초 전 갱신 전략의 장단점은?

  3. HTTP/2를 사용하는 이유는? HTTP/1.1과의 차이점은?

  4. _invoke_json에서 JSON과 텍스트 응답을 모두 처리하는 이유는?

마지막 업데이트