Skip to content

Commit 4eb9ab9

Browse files
committed
fix(templates): register the local Agentex tracing processor so the developer UI traces tab shows spans
Every framework template registered only SGPTracingProcessorConfig, which disables itself when SGP_API_KEY or SGP_ACCOUNT_ID is empty. Nothing else creates a tracing processor, so spans derived by the unified harness were never written to the backend /spans API and a scaffolded agent always showed "No spans found for this task" in the developer UI, contradicting the README ("open the traces tab"). Register AgentexTracingProcessorConfig() ahead of the SGP block in all 16 framework templates (sync/default/temporal x openai-agents, pydantic-ai, langgraph, claude-code, codex, plus the local-sandbox variant), fix a sync-langgraph comment that claimed to register the Agentex processor, and add a parametrized test asserting every framework template registers it. Verified on a scaffolded sync Claude Code agent and a Temporal Claude Code agent against a local backend: with the registration, message/turn spans appear via POST /spans; without it, none do. Claude-Session: https://claude.ai/code/session_01HCVKnA7LeJZ44nxZz1uzF3
1 parent 0db6037 commit 4eb9ab9

17 files changed

Lines changed: 85 additions & 17 deletions

File tree

‎src/agentex/lib/cli/templates/default-claude-code/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,17 @@ from agentex.lib.adk import ClaudeCodeTurn
2525
from agentex.lib.types.acp import SendEventParams, CancelTaskParams, CreateTaskParams
2626
from agentex.lib.core.harness import UnifiedEmitter
2727
from agentex.lib.types.fastacp import AsyncACPConfig
28-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
28+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
2929
from agentex.lib.utils.logging import make_logger
3030
from agentex.types.text_content import TextContent
3131
from agentex.lib.sdk.fastacp.fastacp import FastACP
3232
from agentex.lib.core.tracing.tracing_processor_manager import add_tracing_processor_config
3333

3434
logger = make_logger(__name__)
3535

36+
# Local Agentex backend: spans appear in the developer UI's traces tab.
37+
add_tracing_processor_config(AgentexTracingProcessorConfig())
38+
3639
add_tracing_processor_config(
3740
SGPTracingProcessorConfig(
3841
sgp_api_key=os.environ.get("SGP_API_KEY", ""),

‎src/agentex/lib/cli/templates/default-codex/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,17 @@ from agentex.lib.types.acp import SendEventParams, CancelTaskParams, CreateTaskP
3535
from agentex.types.text_content import TextContent
3636
from agentex.lib.core.harness import UnifiedEmitter
3737
from agentex.lib.types.fastacp import AsyncACPConfig
38-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
38+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
3939
from agentex.lib.utils.logging import make_logger
4040
from agentex.lib.utils.model_utils import BaseModel
4141
from agentex.lib.sdk.fastacp.fastacp import FastACP
4242
from agentex.lib.core.tracing.tracing_processor_manager import add_tracing_processor_config
4343

4444
logger = make_logger(__name__)
4545

46+
# Local Agentex backend: spans appear in the developer UI's traces tab.
47+
add_tracing_processor_config(AgentexTracingProcessorConfig())
48+
4649
add_tracing_processor_config(
4750
SGPTracingProcessorConfig(
4851
sgp_api_key=os.environ.get("SGP_API_KEY", ""),

‎src/agentex/lib/cli/templates/default-langgraph/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ from agentex.lib.core.tracing.tracing_processor_manager import add_tracing_proce
2020
from agentex.lib.sdk.fastacp.fastacp import FastACP
2121
from agentex.protocol.acp import SendEventParams, CancelTaskParams, CreateTaskParams
2222
from agentex.lib.types.fastacp import AsyncACPConfig
23-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
23+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
2424
from agentex.lib.utils.logging import make_logger
2525
from agentex.types.text_content import TextContent
2626
from agentex.lib.adk import LangGraphTurn
@@ -29,6 +29,9 @@ from project.graph import create_graph
2929

3030
logger = make_logger(__name__)
3131

32+
# Local Agentex backend: spans appear in the developer UI's traces tab.
33+
add_tracing_processor_config(AgentexTracingProcessorConfig())
34+
3235
add_tracing_processor_config(
3336
SGPTracingProcessorConfig(
3437
sgp_api_key=os.environ.get("SGP_API_KEY", ""),

‎src/agentex/lib/cli/templates/default-openai-agents/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ from agents import Agent, Runner, function_tool, set_tracing_disabled
2525
from agentex.lib import adk
2626
from agentex.lib.types.acp import SendEventParams, CancelTaskParams, CreateTaskParams
2727
from agentex.lib.types.fastacp import AsyncACPConfig
28-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
28+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
2929
from agentex.lib.utils.logging import make_logger
3030
from agentex.types.text_content import TextContent
3131
from agentex.lib.utils.model_utils import BaseModel
@@ -48,6 +48,9 @@ if _litellm_key and not os.environ.get("OPENAI_API_KEY"):
4848

4949
_sgp_api_key = os.environ.get("SGP_API_KEY", "")
5050
_sgp_account_id = os.environ.get("SGP_ACCOUNT_ID", "")
51+
# Local Agentex backend: spans appear in the developer UI's traces tab.
52+
add_tracing_processor_config(AgentexTracingProcessorConfig())
53+
5154
if _sgp_api_key and _sgp_account_id:
5255
add_tracing_processor_config(
5356
SGPTracingProcessorConfig(

‎src/agentex/lib/cli/templates/default-pydantic-ai/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import agentex.lib.adk as adk
2727
from agentex.protocol.acp import SendEventParams, CancelTaskParams, CreateTaskParams
2828
from agentex.lib.core.harness import UnifiedEmitter
2929
from agentex.lib.types.fastacp import AsyncACPConfig
30-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
30+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
3131
from agentex.lib.utils.logging import make_logger
3232
from agentex.types.text_content import TextContent
3333
from agentex.lib.utils.model_utils import BaseModel
@@ -42,6 +42,9 @@ logger = make_logger(__name__)
4242
# so they show up in the per-task spans dropdown out of the box.
4343
SGP_API_KEY = os.environ.get("SGP_API_KEY", "")
4444
SGP_ACCOUNT_ID = os.environ.get("SGP_ACCOUNT_ID", "")
45+
# Local Agentex backend: spans appear in the developer UI's traces tab.
46+
add_tracing_processor_config(AgentexTracingProcessorConfig())
47+
4548
if SGP_API_KEY and SGP_ACCOUNT_ID:
4649
add_tracing_processor_config(
4750
SGPTracingProcessorConfig(

‎src/agentex/lib/cli/templates/sync-claude-code/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import agentex.lib.adk as adk
2525
from agentex.lib.adk import ClaudeCodeTurn
2626
from agentex.lib.types.acp import SendMessageParams
2727
from agentex.lib.core.harness import UnifiedEmitter
28-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
28+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
2929
from agentex.lib.utils.logging import make_logger
3030
from agentex.types.text_content import TextContent
3131
from agentex.lib.sdk.fastacp.fastacp import FastACP
@@ -35,6 +35,9 @@ from agentex.lib.core.tracing.tracing_processor_manager import add_tracing_proce
3535

3636
logger = make_logger(__name__)
3737

38+
# Local Agentex backend: spans appear in the developer UI's traces tab.
39+
add_tracing_processor_config(AgentexTracingProcessorConfig())
40+
3841
add_tracing_processor_config(
3942
SGPTracingProcessorConfig(
4043
sgp_api_key=os.environ.get("SGP_API_KEY", ""),

‎src/agentex/lib/cli/templates/sync-codex/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import agentex.lib.adk as adk
3434
from agentex.lib.adk import CodexTurn
3535
from agentex.lib.types.acp import SendMessageParams
3636
from agentex.lib.core.harness import UnifiedEmitter
37-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
37+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
3838
from agentex.lib.utils.logging import make_logger
3939
from agentex.types.text_content import TextContent
4040
from agentex.lib.sdk.fastacp.fastacp import FastACP
@@ -44,6 +44,9 @@ from agentex.lib.core.tracing.tracing_processor_manager import add_tracing_proce
4444

4545
logger = make_logger(__name__)
4646

47+
# Local Agentex backend: spans appear in the developer UI's traces tab.
48+
add_tracing_processor_config(AgentexTracingProcessorConfig())
49+
4750
add_tracing_processor_config(
4851
SGPTracingProcessorConfig(
4952
sgp_api_key=os.environ.get("SGP_API_KEY", ""),

‎src/agentex/lib/cli/templates/sync-langgraph/project/acp.py.j2‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ from agentex.lib.core.harness import UnifiedEmitter
1212
from agentex.lib.core.tracing.tracing_processor_manager import add_tracing_processor_config
1313
from agentex.lib.sdk.fastacp.fastacp import FastACP
1414
from agentex.protocol.acp import SendMessageParams
15-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
15+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
1616
from agentex.lib.utils.logging import make_logger
1717
from agentex.types.text_content import TextContent
1818
from agentex.lib.adk import LangGraphTurn
@@ -33,7 +33,10 @@ from project.graph import create_graph
3333

3434
logger = make_logger(__name__)
3535

36-
# Register the Agentex tracing processor so spans are shipped to the backend
36+
# Local Agentex backend: spans appear in the developer UI's traces tab.
37+
add_tracing_processor_config(AgentexTracingProcessorConfig())
38+
39+
# Register the Scale GenAI Platform (SGP) tracing processor
3740
add_tracing_processor_config(
3841
SGPTracingProcessorConfig(
3942
sgp_api_key=os.environ.get("SGP_API_KEY", ""),

‎src/agentex/lib/cli/templates/sync-openai-agents-local-sandbox/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ load_dotenv()
2121
from agentex.lib import adk
2222
from project.agent import run_agent
2323
from agentex.protocol.acp import SendMessageParams
24-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
24+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
2525
from agentex.lib.utils.logging import make_logger
2626
from agentex.types.text_content import TextContent
2727
from agentex.lib.sdk.fastacp.fastacp import FastACP
@@ -42,6 +42,9 @@ SGP_API_KEY = os.environ.get("SGP_API_KEY", "")
4242
SGP_ACCOUNT_ID = os.environ.get("SGP_ACCOUNT_ID", "")
4343
SGP_CLIENT_BASE_URL = os.environ.get("SGP_CLIENT_BASE_URL", "")
4444

45+
# Local Agentex backend: spans appear in the developer UI's traces tab.
46+
add_tracing_processor_config(AgentexTracingProcessorConfig())
47+
4548
if SGP_API_KEY and SGP_ACCOUNT_ID:
4649
add_tracing_processor_config(
4750
SGPTracingProcessorConfig(

‎src/agentex/lib/cli/templates/sync-openai-agents/project/acp.py.j2‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ from agentex.lib.adk.providers._modules.sync_provider import SyncStreamingProvid
66
from agentex.lib.sdk.fastacp.fastacp import FastACP
77
from agentex.protocol.acp import SendMessageParams
88
from agentex.lib.core.tracing.tracing_processor_manager import add_tracing_processor_config
9-
from agentex.lib.types.tracing import SGPTracingProcessorConfig
9+
from agentex.lib.types.tracing import SGPTracingProcessorConfig, AgentexTracingProcessorConfig
1010
from agentex.lib.utils.model_utils import BaseModel
1111

1212
from agentex.types.task_message_update import TaskMessageUpdate, StreamTaskMessageFull
@@ -32,6 +32,9 @@ SGP_API_KEY = os.environ.get("SGP_API_KEY", "")
3232
SGP_ACCOUNT_ID = os.environ.get("SGP_ACCOUNT_ID", "")
3333
SGP_CLIENT_BASE_URL = os.environ.get("SGP_CLIENT_BASE_URL", "")
3434

35+
# Local Agentex backend: spans appear in the developer UI's traces tab.
36+
add_tracing_processor_config(AgentexTracingProcessorConfig())
37+
3538
if SGP_API_KEY and SGP_ACCOUNT_ID:
3639
add_tracing_processor_config(
3740
SGPTracingProcessorConfig(

0 commit comments

Comments
 (0)