Python
Trace
strands-agents with the HoneyHive Python SDKTypeScript
Trace
@strands-agents/sdk with a standard OTLP exporterQuick Start
Tested Versions
HoneyHive’s Strands integration is tested against the following versions, as of October 2026. Newer patch releases are generally safe; pin to these versions to reproduce a known-good configuration.
Requires Python 3.11+.
Don’t use
openinference-instrumentation-strands-agents. That SpanProcessor (from Arize/OpenInference) isn’t supported by HoneyHive’s ingestion pipeline today and its spans may be dropped or misrouted. Strands’ native OTel path shown above is the recommended and fully supported approach.What Gets Traced
HoneyHive automatically captures:- Agent invocations - Every
agent()call with inputs and outputs - LLM calls - Model requests, responses, and token usage
- Tool executions - Each tool call with arguments and results
- Event loop cycles - Internal agent reasoning steps
Example: Agent with Tools
Example: AWS Bedrock Model Backend
Strands works with AWS Bedrock viaBedrockModel. You’ll need AWS credentials configured via any standard mechanism — ~/.aws/credentials, an IAM role, or environment variables:
Example: Multi-Agent (Agents-as-Tools)
Strands supports wrapping agents as tools for orchestration patterns:Adding Metadata
Session-Level (User Context)
Useenrich_session for metadata that applies to the entire session:
Span-Level (Agent Attributes)
Use Strands’ nativetrace_attributes for metadata on agent spans:
Troubleshooting
Traces not appearing
- Initialize HoneyHive first - Must be called before importing Strands:
-
Check environment variables - Ensure
HH_INGESTION_API_KEYis set - Verify model credentials - Ensure your model provider credentials are configured (Anthropic API key, AWS credentials, etc.)
TypeScript
The Strands Agents TypeScript SDK also emits OpenTelemetry spans natively, so you can send them to HoneyHive with a standard OTLP exporter. HoneyHive groups spans into a session byhoneyhive.session_id. Strands sets it only on the root agent span, so tracing.ts below copies it to every child span.
Install
Configure the exporter
Register the tracer provider
tracing.ts
Run an agent
agent.ts
npx tsx agent.ts. The agent, model, and tool spans appear in one session in HoneyHive.
- Generate a new
honeyhive.session_idfor each conversation. Reuse it acrossinvokecalls to keep a multi-turn conversation in one session. - To use Bedrock, replace
OpenAIModelwithBedrockModelfrom@strands-agents/sdk/models/bedrock.
@strands-agents/sdk 1.19.0, @opentelemetry/sdk-trace-node 2.12.0, Node.js 22, and the OpenAI model provider.
Add metadata, metrics, and feedback
To enrich a session after the run, use the TypeScript API SDK with the session ID thatagent.ts prints.
enrich.ts
npx tsx enrich.ts <session-id>.
Related
Enrich Your Traces
Add user IDs and custom metadata to Strands traces
Custom Spans
Create spans for business logic around agent calls
Distributed Tracing
Trace agents across service boundaries
Query Trace Data
Export traces programmatically