Strands (Python)
Strands Agents is an AI agent framework developed by AWS. It has native OpenTelemetry support, making SideSeat integration seamless.
Quick Start
Section titled “Quick Start”-
Start SideSeat
Terminal window npx sideseat -
Install dependencies
Terminal window pip install strands-agents sideseatTerminal window uv add strands-agents sideseat -
Add telemetry
from sideseat import SideSeat, Frameworksfrom strands import AgentSideSeat(framework=Frameworks.Strands)agent = Agent()response = agent("What is the capital of France?")print(response) -
View runs
Open http://localhost:5388 to see your runs.
Without SideSeat SDK
Section titled “Without SideSeat SDK”-
Start SideSeat
Terminal window npx sideseat -
Set the endpoint
Terminal window export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:5388/otel/default -
Install dependencies
Terminal window pip install 'strands-agents[otel]'Terminal window uv add 'strands-agents[otel]' -
Add telemetry
from strands.telemetry import StrandsTelemetryfrom strands import Agenttelemetry = StrandsTelemetry()telemetry.setup_otlp_exporter()telemetry.setup_meter(enable_otlp_exporter=True)agent = Agent()response = agent("What is the capital of France?")print(response) -
View runs
Open http://localhost:5388 to see your runs.
TypeScript
Section titled “TypeScript”See the Strands (TypeScript) page for setup instructions using the SideSeat TypeScript SDK.
What You’ll See
Section titled “What You’ll See”SideSeat shows a trace timeline with:
- A parent span for the agent run
- Child spans for each LLM call with model, tokens, and cost
- Child spans for each tool execution with inputs and outputs
Strands automatically traces tool calls. Define tools normally:
from strands import Agent, tool
@tooldef get_weather(location: str) -> str: """Get weather for a location.""" return f"Weather in {location}: Sunny, 72F"
agent = Agent(tools=[get_weather])response = agent("What's the weather in Paris?")Sessions
Section titled “Sessions”Group related traces using trace attributes:
agent = Agent( trace_attributes={ "session.id": "conversation-123", "user.id": "user-456", })These attributes appear in SideSeat and enable filtering. All turns with the same session.id are grouped under one session.
Next Steps
Section titled “Next Steps”- Python SDK — SDK reference
- Core Concepts — understanding runs, steps, and messages
- Amazon Bedrock — provider-specific details