From ba36ee7d4a67c201dcf76b1dc19d44b8e8368646 Mon Sep 17 00:00:00 2001 From: yangenle6-alt <238854206+yangenle6-alt@users.noreply.github.com> Date: Tue, 7 Jul 2026 10:56:33 +0800 Subject: [PATCH] feat(a2a): support optional app_name for TrpcA2aAgentService Allow the Runner's app identity to differ from the A2A service_name by adding an optional app_name parameter. Falls back to service_name when not provided, preserving existing behavior for all current callers. Co-authored-by: Cursor --- trpc_agent_sdk/server/a2a/_agent_service.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/trpc_agent_sdk/server/a2a/_agent_service.py b/trpc_agent_sdk/server/a2a/_agent_service.py index 508efa54..c7e9df54 100644 --- a/trpc_agent_sdk/server/a2a/_agent_service.py +++ b/trpc_agent_sdk/server/a2a/_agent_service.py @@ -68,6 +68,7 @@ def __init__( *, service_name: str, agent: BaseAgent, + app_name: Optional[str] = None, agent_card: Optional[AgentCard] = None, session_service: Optional[BaseSessionService] = None, memory_service: Optional[BaseMemoryService] = None, @@ -77,6 +78,7 @@ def __init__( self._agent = agent self._agent_card = agent_card self._service_name = service_name + self._app_name = app_name self._session_service = session_service self._memory_service = memory_service self._executor_config = executor_config @@ -110,8 +112,12 @@ async def _initialize(self) -> None: logger.info("Initialized A2A Agent Service %s for %s", self._service_name, self._agent.name) def _create_executor(self) -> TrpcA2aAgentExecutor: + app_name = self._app_name or self._service_name runner = Runner( - app_name=self._service_name, + # Keep the historical service_name default for compatibility, while + # allowing callers to pass an explicit app_name when the Runner app + # identity differs from the A2A transport registration name. + app_name=app_name, agent=self._agent, session_service=self._session_service, memory_service=self._memory_service,