If you read one line: Since July 20, 2026, every new Amazon Bedrock AgentCore agent streams all of its telemetry — traces, prompts, structured logs, stdout — into one per-agent CloudWatch log group, /aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>, with zero config. Debugging is now one query instead of a hunt across log groups. Two gotchas: enable CloudWatch Transaction Search once or you'll see no traces, and add aws-opentelemetry-distro so your framework's spans actually flow.
If you run agents on AgentCore, a quiet default flip on July 20 changed the worst part of operating them. The old tax on a production agent was reconstruction: a single invocation sprayed its trace spans, prompts, structured logs, and raw stdout across several CloudWatch log groups, and you stitched the story back together by hand — with no way to lock down access or encryption for one agent specifically. That's over for new agents.
What actually turned on#
Per the AWS announcement, every AgentCore agent created on or after July 20, 2026 sends its complete telemetry to a single per-agent log group:
/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>
Everything the agent emits — spans, the prompts it sent, your structured logs, and plain stdout — lands there together, no configuration required. Three things fall out of that one design choice:
- Correlation for free. Traces and logs sit in the same place, so you read one invocation top to bottom instead of joining across groups.
- Per-agent IAM and CMK. You can now scope an IAM policy — and a customer-managed encryption key — to this agent's log group. Before, that granularity didn't exist.
- One-subscription export. Ship all of an agent's telemetry to your SIEM or data lake by subscribing a single log group, not a fan-out of them.
For multi-agent systems the payoff compounds: each agent's full execution history stays together, so end-to-end debugging of a hand-off is a query, not a scavenger hunt.
Gotcha 1: no traces until you enable Transaction Search#
Logs show up immediately; spans and traces do not until you flip one account-level switch. It's a one-time setup, easy to miss, and the reason most first-timers think observability "isn't working." From the configure-observability docs:
- Open the CloudWatch console.
- Expand Application Signals (APM) → Transaction search.
- Choose Enable Transaction Search.
Then wait — it can take about ten minutes for spans to become searchable. Once it's on, your traces render in the GenAI Observability dashboard, under the Bedrock AgentCore tab.
Gotcha 2: your framework has to emit OpenTelemetry#
AgentCore observability is built on OpenTelemetry, so the platform captures whatever your agent emits — which means your framework has to be instrumented. The zero-effort path is AWS's OTel distro. In your agent's requirements.txt:
aws-opentelemetry-distro # ADOT: auto-instrumentation + CloudWatch export
strands-agents[otel] # example: make Strands actually emit spans
Then run your agent under the OTel entrypoint instead of calling Python directly:
opentelemetry-instrument python -m my_agent
opentelemetry-instrument loads the OTel config from your environment and auto-instruments Strands, Amazon Bedrock model calls, tool and database calls, and outbound HTTP — routing all of it into the same CloudWatch destination. If you use a different framework, install its OTel auto-instrumentor the same way; the starter-toolkit quickstart has the per-framework specifics.
The two-minute checklist#
- Confirm the log group. For a new agent, look for
/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>. If it's there, unified observability is live. - Enable Transaction Search once, per account (above). No traces without it.
- Add
aws-opentelemetry-distroand launch underopentelemetry-instrumentso spans actually flow. - Scope it. Attach a per-agent IAM policy and, if you need it, a CMK to that one log group.
- Export it. Subscribe the single group to your downstream pipeline.
So do you still need Langfuse?#
That's the real question this change forces, and it deserves its own answer. Native AgentCore observability is genuinely good — free with the platform, per-agent, OTel-based — but it's AWS-shaped: it lives in CloudWatch and assumes you host on AgentCore. Dedicated LLM-observability tools still own cross-platform tracing, prompt management, datasets, and tight eval loops. We walk that decision — native AgentCore observability vs Langfuse vs Phoenix — in the companion piece. The short version: if AgentCore is your whole stack, the built-in tracing may be all the runtime visibility you need; the moment you go multi-platform or want evaluation baked in, you'll reach for a vendor on top.



