From a28815b7c1294aceaf929746545dff5acd35f4b3 Mon Sep 17 00:00:00 2001 From: Anish Agrawal Date: Sat, 26 Jul 2025 21:00:19 -0700 Subject: [PATCH 1/4] default headers --- src/agentex/lib/adk/_modules/acp.py | 3 ++- src/agentex/lib/adk/_modules/agent_task_tracker.py | 3 ++- src/agentex/lib/adk/_modules/agents.py | 3 ++- src/agentex/lib/adk/_modules/events.py | 3 ++- src/agentex/lib/adk/_modules/messages.py | 3 ++- src/agentex/lib/adk/_modules/state.py | 3 ++- src/agentex/lib/adk/_modules/streaming.py | 3 ++- src/agentex/lib/adk/_modules/tasks.py | 3 ++- src/agentex/lib/adk/_modules/tracing.py | 3 ++- src/agentex/lib/adk/utils/_modules/client.py | 12 ++++++++++++ 10 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 src/agentex/lib/adk/utils/_modules/client.py diff --git a/src/agentex/lib/adk/_modules/acp.py b/src/agentex/lib/adk/_modules/acp.py index 657f8e14..59c1fc63 100644 --- a/src/agentex/lib/adk/_modules/acp.py +++ b/src/agentex/lib/adk/_modules/acp.py @@ -4,6 +4,7 @@ from temporalio.common import RetryPolicy from agentex import AsyncAgentex +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.services.adk.acp.acp import ACPService from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers from agentex.lib.core.temporal.activities.adk.acp.acp_activities import ( @@ -40,7 +41,7 @@ def __init__(self, acp_service: ACPService | None = None): acp_activities (Optional[ACPActivities]): Optional pre-configured ACP activities. If None, will be auto-initialized. """ if acp_service is None: - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() tracer = AsyncTracer(agentex_client) self._acp_service = ACPService(agentex_client=agentex_client, tracer=tracer) else: diff --git a/src/agentex/lib/adk/_modules/agent_task_tracker.py b/src/agentex/lib/adk/_modules/agent_task_tracker.py index 44ffd518..0a793bd2 100644 --- a/src/agentex/lib/adk/_modules/agent_task_tracker.py +++ b/src/agentex/lib/adk/_modules/agent_task_tracker.py @@ -3,6 +3,7 @@ from temporalio.common import RetryPolicy from agentex import AsyncAgentex +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.services.adk.agent_task_tracker import AgentTaskTrackerService from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers from agentex.lib.core.temporal.activities.adk.agent_task_tracker_activities import ( @@ -33,7 +34,7 @@ def __init__( agent_task_tracker_service: AgentTaskTrackerService | None = None, ): if agent_task_tracker_service is None: - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() tracer = AsyncTracer(agentex_client) self._agent_task_tracker_service = AgentTaskTrackerService( agentex_client=agentex_client, tracer=tracer diff --git a/src/agentex/lib/adk/_modules/agents.py b/src/agentex/lib/adk/_modules/agents.py index 5e1bbe0e..fcbf3cca 100644 --- a/src/agentex/lib/adk/_modules/agents.py +++ b/src/agentex/lib/adk/_modules/agents.py @@ -1,6 +1,7 @@ from datetime import timedelta from typing import Optional +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.temporal.activities.adk.agents_activities import AgentsActivityName, GetAgentParams from temporalio.common import RetryPolicy @@ -28,7 +29,7 @@ def __init__( agents_service: Optional[AgentsService] = None, ): if agents_service is None: - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() tracer = AsyncTracer(agentex_client) self._agents_service = AgentsService(agentex_client=agentex_client, tracer=tracer) else: diff --git a/src/agentex/lib/adk/_modules/events.py b/src/agentex/lib/adk/_modules/events.py index 529db4c3..3d771ab6 100644 --- a/src/agentex/lib/adk/_modules/events.py +++ b/src/agentex/lib/adk/_modules/events.py @@ -3,6 +3,7 @@ from temporalio.common import RetryPolicy from agentex import AsyncAgentex +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.services.adk.events import EventsService from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers from agentex.lib.core.temporal.activities.adk.events_activities import ( @@ -32,7 +33,7 @@ def __init__( events_service: EventsService | None = None, ): if events_service is None: - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() tracer = AsyncTracer(agentex_client) self._events_service = EventsService( agentex_client=agentex_client, tracer=tracer diff --git a/src/agentex/lib/adk/_modules/messages.py b/src/agentex/lib/adk/_modules/messages.py index 24d7f0f0..ec074020 100644 --- a/src/agentex/lib/adk/_modules/messages.py +++ b/src/agentex/lib/adk/_modules/messages.py @@ -3,6 +3,7 @@ from temporalio.common import RetryPolicy from agentex import AsyncAgentex +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.adapters.streams.adapter_redis import RedisEventStreamRepository from agentex.lib.core.services.adk.messages import MessagesService from agentex.lib.core.services.adk.streaming import StreamingService @@ -37,7 +38,7 @@ def __init__( messages_service: MessagesService | None = None, ): if messages_service is None: - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() stream_repository = RedisEventStreamRepository() streaming_service = StreamingService( agentex_client=agentex_client, diff --git a/src/agentex/lib/adk/_modules/state.py b/src/agentex/lib/adk/_modules/state.py index c13a6b59..8f8fd8a5 100644 --- a/src/agentex/lib/adk/_modules/state.py +++ b/src/agentex/lib/adk/_modules/state.py @@ -5,6 +5,7 @@ from temporalio.common import RetryPolicy from agentex import AsyncAgentex +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.services.adk.state import StateService from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers from agentex.lib.core.temporal.activities.adk.state_activities import ( @@ -36,7 +37,7 @@ def __init__( state_service: StateService | None = None, ): if state_service is None: - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() tracer = AsyncTracer(agentex_client) self._state_service = StateService( agentex_client=agentex_client, tracer=tracer diff --git a/src/agentex/lib/adk/_modules/streaming.py b/src/agentex/lib/adk/_modules/streaming.py index 589384ed..a752db49 100644 --- a/src/agentex/lib/adk/_modules/streaming.py +++ b/src/agentex/lib/adk/_modules/streaming.py @@ -1,6 +1,7 @@ from temporalio.common import RetryPolicy from agentex import AsyncAgentex +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.adapters.streams.adapter_redis import RedisEventStreamRepository from agentex.lib.core.services.adk.streaming import ( StreamingService, @@ -34,7 +35,7 @@ def __init__(self, streaming_service: StreamingService | None = None): """ if streaming_service is None: stream_repository = RedisEventStreamRepository() - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() self._streaming_service = StreamingService( agentex_client=agentex_client, stream_repository=stream_repository, diff --git a/src/agentex/lib/adk/_modules/tasks.py b/src/agentex/lib/adk/_modules/tasks.py index 8b8f949a..9b4b51ee 100644 --- a/src/agentex/lib/adk/_modules/tasks.py +++ b/src/agentex/lib/adk/_modules/tasks.py @@ -3,6 +3,7 @@ from temporalio.common import RetryPolicy from agentex import AsyncAgentex +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.services.adk.tasks import TasksService from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers from agentex.lib.core.temporal.activities.adk.tasks_activities import ( @@ -31,7 +32,7 @@ def __init__( tasks_service: TasksService | None = None, ): if tasks_service is None: - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() tracer = AsyncTracer(agentex_client) self._tasks_service = TasksService( agentex_client=agentex_client, tracer=tracer diff --git a/src/agentex/lib/adk/_modules/tracing.py b/src/agentex/lib/adk/_modules/tracing.py index 138f25c9..cc45a899 100644 --- a/src/agentex/lib/adk/_modules/tracing.py +++ b/src/agentex/lib/adk/_modules/tracing.py @@ -6,6 +6,7 @@ from temporalio.common import RetryPolicy from agentex import AsyncAgentex +from agentex.lib.adk.utils._modules.client import create_async_agentex_client from agentex.lib.core.services.adk.tracing import TracingService from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers from agentex.lib.core.temporal.activities.adk.tracing_activities import ( @@ -38,7 +39,7 @@ def __init__(self, tracing_service: TracingService | None = None): tracing_activities (Optional[TracingActivities]): Optional pre-configured tracing activities. If None, will be auto-initialized. """ if tracing_service is None: - agentex_client = AsyncAgentex() + agentex_client = create_async_agentex_client() tracer = AsyncTracer(agentex_client) self._tracing_service = TracingService(tracer=tracer) else: diff --git a/src/agentex/lib/adk/utils/_modules/client.py b/src/agentex/lib/adk/utils/_modules/client.py new file mode 100644 index 00000000..43041a69 --- /dev/null +++ b/src/agentex/lib/adk/utils/_modules/client.py @@ -0,0 +1,12 @@ +import os + +from agentex import AsyncAgentex +from agentex.lib.environment_variables import refreshed_environment_variables + + +def create_async_agentex_client(**kwargs): + agent_id = refreshed_environment_variables.AGENT_ID + default_headers = { + "x-agentex-identity": agent_id + } + return AsyncAgentex(default_headers=default_headers, **kwargs) From 5d8415e216ff65c047a818c9cede60bd40d34efb Mon Sep 17 00:00:00 2001 From: Anish Agrawal Date: Sat, 26 Jul 2025 21:02:23 -0700 Subject: [PATCH 2/4] default headers --- src/agentex/lib/adk/utils/_modules/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/agentex/lib/adk/utils/_modules/client.py b/src/agentex/lib/adk/utils/_modules/client.py index 43041a69..ba3246f1 100644 --- a/src/agentex/lib/adk/utils/_modules/client.py +++ b/src/agentex/lib/adk/utils/_modules/client.py @@ -7,6 +7,6 @@ def create_async_agentex_client(**kwargs): agent_id = refreshed_environment_variables.AGENT_ID default_headers = { - "x-agentex-identity": agent_id + "x-agent-identity": agent_id } return AsyncAgentex(default_headers=default_headers, **kwargs) From bd5a04979fb599d1b9779bd42d77a7dfd96fe395 Mon Sep 17 00:00:00 2001 From: Anish Agrawal Date: Sun, 27 Jul 2025 15:57:05 -0700 Subject: [PATCH 3/4] refresh envvars with name and id of agent --- src/agentex/lib/sdk/fastacp/base/base_acp_server.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/agentex/lib/sdk/fastacp/base/base_acp_server.py b/src/agentex/lib/sdk/fastacp/base/base_acp_server.py index 8b8cc9ae..1da5bea1 100644 --- a/src/agentex/lib/sdk/fastacp/base/base_acp_server.py +++ b/src/agentex/lib/sdk/fastacp/base/base_acp_server.py @@ -2,6 +2,7 @@ import base64 import inspect import json +import os from collections.abc import AsyncGenerator, Awaitable, Callable from contextlib import asynccontextmanager from typing import Any @@ -13,7 +14,7 @@ from pydantic import TypeAdapter, ValidationError # from agentex.lib.sdk.fastacp.types import BaseACPConfig -from agentex.lib.environment_variables import EnvironmentVariables +from agentex.lib.environment_variables import EnvironmentVariables, refreshed_environment_variables from agentex.lib.types.acp import ( PARAMS_MODEL_BY_METHOD, RPC_SYNC_METHODS, @@ -393,6 +394,13 @@ async def _register_agent(self, env_vars: EnvironmentVariables): logger.info( f"Successfully registered agent '{env_vars.AGENT_NAME}' with Agentex server with acp_url: {full_acp_url}. Registration data: {registration_data}" ) + agent = response.json() + agent_id, agent_name = agent["id"], agent["name"] + + os.environ["AGENT_ID"] = agent_id + os.environ["AGENT_NAME"] = agent_name + refreshed_environment_variables.AGENT_ID = agent_id + refreshed_environment_variables.AGENT_NAME = agent_name return # Success, exit the retry loop else: error_msg = f"Failed to register agent. Status: {response.status_code}, Response: {response.text}" From 5a4375266d5df9ad787340aa3f19610517612b6c Mon Sep 17 00:00:00 2001 From: Anish Agrawal Date: Sun, 27 Jul 2025 15:58:48 -0700 Subject: [PATCH 4/4] refresh envvars with name and id of agent --- src/agentex/lib/sdk/fastacp/base/base_acp_server.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/agentex/lib/sdk/fastacp/base/base_acp_server.py b/src/agentex/lib/sdk/fastacp/base/base_acp_server.py index 1da5bea1..f3ca53de 100644 --- a/src/agentex/lib/sdk/fastacp/base/base_acp_server.py +++ b/src/agentex/lib/sdk/fastacp/base/base_acp_server.py @@ -391,9 +391,6 @@ async def _register_agent(self, env_vars: EnvironmentVariables): registration_url, json=registration_data, timeout=30.0 ) if response.status_code == 200: - logger.info( - f"Successfully registered agent '{env_vars.AGENT_NAME}' with Agentex server with acp_url: {full_acp_url}. Registration data: {registration_data}" - ) agent = response.json() agent_id, agent_name = agent["id"], agent["name"] @@ -401,6 +398,10 @@ async def _register_agent(self, env_vars: EnvironmentVariables): os.environ["AGENT_NAME"] = agent_name refreshed_environment_variables.AGENT_ID = agent_id refreshed_environment_variables.AGENT_NAME = agent_name + + logger.info( + f"Successfully registered agent '{agent_name}' with Agentex server with acp_url: {full_acp_url}. Registration data: {registration_data}" + ) return # Success, exit the retry loop else: error_msg = f"Failed to register agent. Status: {response.status_code}, Response: {response.text}"